using Core.Entities.Identity; using Infrastructure; using Infrastructure.Data; using Infrastructure.Identity; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; namespace API { public class Program { public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using(var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService(); try { var context = services.GetRequiredService(); await context.Database.MigrateAsync(); await StoreContextSeed.SeedAsync(context, loggerFactory); var userManager = services.GetRequiredService>(); var identityContext = services.GetRequiredService(); await identityContext.Database.MigrateAsync(); await AppIdentityDbContextSeed.SeedUsersAsync(userManager); } catch (Exception ex) { var logger = loggerFactory.CreateLogger(); logger.LogError(ex, "An error occured during migration"); } } host.Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }); } }