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 <ILoggerFactory>(); try { var context = services.GetRequiredService <StoreContext>(); await context.Database.MigrateAsync(); await StoreContextSeed.SeedAsync(context, loggerFactory); var userManager = services.GetRequiredService <UserManager <AppUser> >(); var identityContext = services.GetRequiredService <AppIdentityDbContext>(); await identityContext.Database.MigrateAsync(); await AppIdentityContextSeed.SeedAsync(userManager); } catch (Exception ex) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(ex.Message); } } host.Run(); }
/// <summary> /// Extension method for ApplicationBuilder to seed user data. /// </summary> /// <param name="builder"></param> /// <returns></returns> public static async Task SeedData(this IApplicationBuilder builder) { IServiceProvider provider = builder.ApplicationServices; using (var scope = provider.GetService <IServiceScopeFactory>().CreateScope()) { var userManager = scope.ServiceProvider.GetRequiredService <UserManager <ApplicationUser> >(); var roleManager = scope.ServiceProvider.GetRequiredService <RoleManager <IdentityRole> >(); string userId = await AppIdentityContextSeed.SeedAsync(userManager, roleManager); var webContext = scope.ServiceProvider.GetRequiredService <WebContext>(); Project project = await WebContextSeed.SeedAsync(webContext, userId); } }