public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var userManager = services.GetRequiredService <UserManager <User> >(); var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); var context = services.GetRequiredService <ApplicationDbContext>(); context.Database.Migrate(); Task.Run(async() => await UserAndRoleSeeder.Seed(roleManager, userManager)).Wait(); var seeder = services.GetRequiredService <CategorySeeder>(); await seeder.Seed(); var citySeeder = services.GetRequiredService <CitySeeder>(); await citySeeder.Seed(); var faqSeeder = services.GetRequiredService <FAQSeeder>(); await faqSeeder.Seed(); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred while seeding the database."); } } host.Run(); }
public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { // seeding user as administrator var userManager = services.GetRequiredService <UserManager <User> >(); var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); var context = services.GetRequiredService <ApplicationDbContext>(); context.Database.Migrate(); Task.Run(async() => await UserAndRoleSeeder.SeedUsersAndRoles(roleManager, userManager)).Wait(); // Seed company data Task.Run(async() => await PopulateCompaniesSeeder.SeedCompanies(context)).Wait(); // Seed employee data Task.Run(async() => await PopulateEmployeesSeeder.SeedEmployees(context)).Wait(); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "Error has occured while migrating to the database."); } } host.Run(); }
protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureServices(async services => { var descriptor = services.SingleOrDefault( d => d.ServiceType == typeof(DbContextOptions <ApplicationDbContext>)); services.Remove(descriptor); services.AddDbContext <ApplicationDbContext>(options => { options.UseInMemoryDatabase("InMemoryDb"); }); var sp = services.BuildServiceProvider(); using (var scope = sp.CreateScope()) { var scopedServices = scope.ServiceProvider; var db = scopedServices.GetRequiredService <ApplicationDbContext>(); var logger = scopedServices .GetRequiredService <ILogger <IntegrationTest <TStartup> > >(); db.Database.EnsureCreated(); try { var user = new User { Email = "*****@*****.**" }; var mockRoleManager = GetRoleManagerMock <IdentityRole>(); var mockUserManager = GetUserManagerMock <User>(); mockUserManager.Setup(s => s.CreateAsync(It.IsAny <User>(), It.IsAny <string>())) .ReturnsAsync(IdentityResult.Success); await UserAndRoleSeeder.SeedUsersAndRoles(mockRoleManager.Object, mockUserManager.Object); } catch (Exception ex) { logger.LogError(ex, "an error occured seeding the database with UserAndRoleSeeder", ex.Message); } } }); }