using dotenv.net; using Eshop.Infrastructure; using Eshop.Infrastructure.Data; using Eshop.Infrastructure.Persistence; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; namespace Eshop.Web; public class Program { public static void Main(string[] args) { DotEnv.Load(); var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); builder.Services.AddInfrastructure(builder.Configuration); var app = builder.Build(); using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService(); if (db.Database.GetPendingMigrations().Any()) db.Database.Migrate(); var userManager = scope.ServiceProvider.GetRequiredService>(); var roleManager = scope.ServiceProvider.GetRequiredService>(); DataSeeder.SeedAsync(userManager, roleManager).GetAwaiter().GetResult(); } if (!app.Environment.IsDevelopment()) app.UseExceptionHandler("/Home/Error"); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapStaticAssets(); app.MapControllerRoute( name: "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}") .WithStaticAssets(); app.Run(); } }