コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: shanemcg88/glfmanager
        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();
        }
コード例 #3
0
        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);
                    }
                }
            });
        }