public async static Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService <ILoggerFactory>(); try { var context = services.GetRequiredService <ApplicationDbContext>(); var userManager = services.GetRequiredService <UserManager <ApplicationUser> >(); var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); await ContextSeed.SeedRolesAsync(userManager, roleManager); await ContextSeed.SeedAdminAsync(userManager, roleManager); await ContextSeed.SeedCustomerAsync(userManager, roleManager); await ContextSeed.SeedCategoriesAsync(context); await ContextSeed.SeedProductsAsync(context); await ContextSeed.SeedProductReviewsAsync(context, userManager); } catch (Exception ex) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(ex, "An error occurred seeding the DB."); } } host.Run(); }