예제 #1
0
        public static void Main(string[] args)
        {
            var builder = CreateWebHostBuilder(args);

            string env = "Development";

            if (args.Any())
            {
                env = args[0];
            }
            builder.UseEnvironment(env);
            var host = builder.Build();


            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    var context = services.GetRequiredService <AppDbContext>();
                    SeedData.PopulateTestData(context);

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager, roleManager).Wait();
                }
                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 = CreateWebHostBuilder(args)
                       .Build();

            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var appContext = services.GetRequiredService <ApplicationDbContext>();
                    ApplicationDbContextSeed.SeedAsync(appContext, loggerFactory)
                    .Wait();

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #3
0
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var catalogContext = services.GetRequiredService <CatalogContext>();
                    catalogContext.Database.MigrateAsync().Wait();

                    var searchSvc  = services.GetRequiredService <SearchService>();
                    var storageSvc = services.GetRequiredService <ICloudStorageService>();

                    CatalogContextSeed.SeedAsync(catalogContext, searchSvc, storageSvc, loggerFactory).Wait();

                    var appIdentityDbContext = services.GetRequiredService <AppIdentityDbContext>();
                    appIdentityDbContext.Database.MigrateAsync().Wait();

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #4
0
파일: Program.cs 프로젝트: kaldren/askgoo2
        public static void Main(string[] args)
        {
            var host   = CreateWebHostBuilder(args).Build();
            var logger = host.Services.GetRequiredService <ILogger <Program> >();

            var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            // Seed InMemory when in Development
            if (environment == EnvironmentName.Development)
            {
                using (var scope = host.Services.CreateScope())
                {
                    var services = scope.ServiceProvider;

                    try
                    {
                        var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                        AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
                        logger.LogInformation("Log Message: Seeding AppIdentityDbContext");
                    }
                    catch (Exception)
                    {
                        logger.LogError($"InMemory database seeding failed. at {DateTime.Now}.");
                        throw;
                    }
                }
            }

            host.Run();
        }
예제 #5
0
        public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.RollingFile("Logs/web-ui.log")
                         .CreateLogger();

            var host = CreateWebHostBuilder(args)
                       .Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var userManager = services.GetRequiredService <UserManager <IdentityUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();

                    var context = scope.ServiceProvider.GetService <AppDataDbContext>();
                    AppDataDbContextSeed.Seed(context);
                }

                catch (Exception ex)
                {
                    Log.Error(ex, "Fejl ved opstart af Tidsregistrering Web UI");
                }
            }

            host.Run();
        }
예제 #6
0
        private static async Task SeedDatabase(IHost host)
        {
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                var logger   = services.GetRequiredService <ILogger <Program> >();
                logger.LogInformation("Seeding database...");
                try
                {
                    var context = services.GetRequiredService <AppDbContext>();
                    if (context.Questions !.Any())
                    {
                        logger.LogDebug("Database already has data in it.");
                    }
                    else
                    {
                        SeedData.PopulateTestData(context);
                        logger.LogDebug("Populated AppDbContext test data.");
                    }

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();
                    if (userManager.Users.Any() || roleManager.Roles.Any())
                    {
                        logger.LogDebug("User/Role data already exists.");
                    }
                    else
                    {
                        await AppIdentityDbContextSeed.SeedAsync(userManager, roleManager);

                        logger.LogDebug("Populated AppIdentityDbContext test data.");
                    }
                }
예제 #7
0
        protected HttpClient GetClient()
        {
            var startupAssembly = typeof(Startup).GetTypeInfo().Assembly;

            _contentRoot = GetProjectPath("src", "WebRazorPages");
            var builder = new WebHostBuilder()
                          .UseContentRoot(_contentRoot)
                          .UseEnvironment("Testing")
                          .UseStartup <Startup>();

            var server = new TestServer(builder);

            // seed data
            using (var scope = server.Host.Services.CreateScope())
            {
                var services       = scope.ServiceProvider;
                var loggerFactory  = services.GetRequiredService <ILoggerFactory>();
                var catalogContext = services.GetRequiredService <CatalogContext>();
                CatalogContextSeed.SeedAsync(catalogContext, loggerFactory)
                .Wait();

                var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
            }

            return(server.CreateClient());
        }
예제 #8
0
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    // TwoNoteContext Seed.
                    var context = services.GetService <TwoNoteContext>();
                    DbSeed.SeedAsync(context).Wait();

                    // AppIdentityDbContext Seed.
                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService <ILogger <Program> >();
                    logger.LogError(ex, "An error occured while seeding the database");
                }
            }

            host.Run();
        }
예제 #9
0
        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 <AppIdentityDbContext>();
                    var environment = services.GetRequiredService <IWebHostEnvironment>();
                    AppIdentityDbContextSeed.EnsureDatabaseMigrations(context);
                    await AppIdentityDbContextSeed.EnsureRoleAdminCreated(services);

                    await AppIdentityDbContextSeed.EnsureUserAdminCreated(services, environment.IsDevelopment());

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();

                    var damaContext = services.GetRequiredService <DamaContext>();
                    DamaContextSeed.EnsureDatabaseMigrations(damaContext);
                    await DamaContextSeed.SeedAsync(damaContext, loggerFactory, null, environment.IsDevelopment());
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #10
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args)
                       .Build();

            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var serviceConfig  = services.GetService <IConfiguration>();
                    var catalogContext = services.GetRequiredService <CatalogContext>();

                    CatalogContextSeed.StorageAccountConnStr = GetAppSettingsConfigValue(serviceConfig, "appsettings.Development.json", "eShopStorageAccountCS");
                    var dbSeed = services.GetRequiredService <IDbSeed>();
                    CatalogContextSeed.SeedAsync(catalogContext, loggerFactory, dbSeed).Wait();


                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #11
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args)                                   // @issue@I02
                       .Build();                                                    // @issue@I02

            using (var scope = host.Services.CreateScope())                         // @issue@I02
            {
                var services      = scope.ServiceProvider;                          // @issue@I02
                var loggerFactory = services.GetRequiredService <ILoggerFactory>(); // @issue@I02
                try
                {
                    var catalogContext = services.GetRequiredService <CatalogContext>();              // @issue@I02
                    CatalogContextSeed.SeedAsync(catalogContext, loggerFactory)                       // @issue@I02
                    .Wait();                                                                          // @issue@I02

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >(); // @issue@I02
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();                           // @issue@I02
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();      // @issue@I02
                    logger.LogError(ex, "An error occurred seeding the DB."); // @issue@I02
                }
            }

            host.Run(); // @issue@I02
        }
예제 #12
0
파일: Program.cs 프로젝트: a43mrk/skinet
        // 27-3 don't forget to change to async and return type Task at main when using calling async methods at main
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            // 27-1 access data context; enable auto migrations.
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    // 27 -2 get StoreContext from Container and call migration programatically.
                    var context = services.GetRequiredService <StoreContext>();
                    await context.Database.MigrateAsync();

                    // 28-2 call seed data
                    await StoreContextSeed.SeedAsync(context, loggerFactory);

                    // 167-1 Add Identity to Program class
                    var userManager     = services.GetRequiredService <UserManager <AppUser> >();
                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContext.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUsersAsync(userManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
            }
            // don't forget to call .Run();
            host.Run();
        }
예제 #13
0
        public static async Task Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                using (var context = services.GetService <AppDbContext>())
                {
                    context.Database.Migrate();
                    AppDbContextSeed.Seed(context);
                }

                using (var context = services.GetService <AppIdentityDbContext>())
                {
                    context.Database.Migrate();

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();

                    await AppIdentityDbContextSeed.SeedAsync(userManager, roleManager);
                }
            }

            host.Run();
        }
예제 #14
0
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope()) //any code that runs inside of using statement is disposed after the execution of the methods inside
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var context = services.GetRequiredService <ArtMiraDbContext>();
                    await context.Database.MigrateAsync();

                    await ArtClassContextSeed.SeedAsync(context, loggerFactory);

                    var userManager     = services.GetRequiredService <UserManager <AppUser> >();
                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContext.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUserAsync(userManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
                host.Run();
            }
        }
예제 #15
0
        public static async Task Main(string[] args)
        {
            //CreateHostBuilder(args).Build().Run(); // prev code
            var host = CreateHostBuilder(args).Build();

            // following code is for creating migration on startup and logging.
            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(); // this will apply any pending migration if pending and create db if not exists.

                    // seeding data
                    await StoreContextSeed.SeedAsync(context, loggerFactory);


                    // identity sees code
                    var userManager     = services.GetRequiredService <UserManager <AppUser> >();
                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContext.Database.MigrateAsync();              // here identity db will be created

                    await AppIdentityDbContextSeed.SeedUsersAsync(userManager); // addind seed for user
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured on migration");
                }
            }

            host.Run();
        }
예제 #16
0
파일: Program.cs 프로젝트: manish523/skinet
        public static async Task Main(string[] args)
        {
            // CreateHostBuilder(args).Build().Run();
            //following chaange has been made to enable migration on app startup
            //pending migrations if any will be executed ..if database not present then will be created
            //WE NEED TO MAKE THE MAIN METHOD ASYNC FOR THIS AS WE WIL AWAIT FOR MIGRATEASYNC FUNCTION
            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 AppIdentityDbContextSeed.SeedUserAsync(userManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred during migration");
                }
            }
            host.Run();
        }
예제 #17
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureServices(services =>
            {
                services.AddEntityFrameworkInMemoryDatabase();

                // Create a new service provider.
                var provider = services
                               .AddEntityFrameworkInMemoryDatabase()
                               .BuildServiceProvider();

                // Add a database context (ApplicationDbContext) using an in-memory
                // database for testing.
                services.AddDbContext <CatalogContext>(options =>
                {
                    options.UseInMemoryDatabase("InMemoryDbForTesting");
                    options.UseInternalServiceProvider(provider);
                });

                services.AddDbContext <AppIdentityDbContext>(options =>
                {
                    options.UseInMemoryDatabase("Identity");
                    options.UseInternalServiceProvider(provider);
                });

                // Build the service provider.
                var sp = services.BuildServiceProvider();

                // Create a scope to obtain a reference to the database
                // context (ApplicationDbContext).
                using (var scope = sp.CreateScope())
                {
                    var scopedServices = scope.ServiceProvider;
                    var db             = scopedServices.GetRequiredService <CatalogContext>();
                    var loggerFactory  = scopedServices.GetRequiredService <ILoggerFactory>();

                    var logger = scopedServices
                                 .GetRequiredService <ILogger <CustomWebApplicationFactory <TStartup> > >();

                    // Ensure the database is created.
                    db.Database.EnsureCreated();

                    try
                    {
                        // Seed the database with test data.
                        CatalogContextSeed.SeedAsync(db, loggerFactory).Wait();

                        // seed sample user data
                        var userManager = scopedServices.GetRequiredService <UserManager <ApplicationUser> >();
                        var roleManager = scopedServices.GetRequiredService <RoleManager <IdentityRole> >();
                        AppIdentityDbContextSeed.SeedAsync(userManager, roleManager).Wait();
                    }
                    catch (Exception ex)
                    {
                        logger.LogError(ex, $"An error occurred seeding the " +
                                        "database with test messages. Error: {ex.Message}");
                    }
                }
            });
        }
예제 #18
0
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            // apply migrations or database if it does not exist
            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();

                // seed product data
                await StoreContextSeed.SeedAsync(context, loggerFactory);

                // seed user
                var userManager     = services.GetRequiredService <UserManager <ApplicationUser> >();
                var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                await identityContext.Database.MigrateAsync();

                await AppIdentityDbContextSeed.SeedUserAsync(userManager);
            }
            catch (Exception e)
            {
                var logger = loggerFactory.CreateLogger <Program>();
                logger.LogError(e, "An error occured during migration");
            }

            await host.RunAsync();
        }
예제 #19
0
        public static async Task Main(string[] args)
        {
            // Apply migration and create database at startup
            var host = CreateHostBuilder(args).Build();

            // using means any code runs inside of this is going to be disposed once finished
            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 AppIdentityDbContextSeed.SeedUserAsync(userManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
            }

            host.Run();
        }
예제 #20
0
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            // using mark a scope handled like Spring Bean
            // seeding database like Spring CommandlineRunner
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var context = services.GetRequiredService <StoreContext>();
                    // create the database if not exist
                    await context.Database.MigrateAsync();

                    // seeding database with StoreContextSeed class
                    await StoreContextSeed.SeedAsync(context, loggerFactory);

                    // IdentityBuilder implementation
                    var userManager     = services.GetRequiredService <UserManager <AppUser> >();
                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContext.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUsersAsync(userManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
            }

            host.Run();
        }
예제 #21
0
        public static async Task Main(string[] args)
        {
            #region 3.27 Applying migrations and updating database
            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(); //applyes pending migrations

                    //3.28.2 Adding Seed method ->
                    await StoreContextSeed.SeedAsync(context, loggerFactory);

                    #region 15.167 Seeding data and automatic migrations for identity -> AccountController
                    var userManager     = services.GetRequiredService <UserManager <AppUser> >();
                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContext.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUserAsync(userManager);

                    #endregion
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
            }
            host.Run();
            #endregion
        }
예제 #22
0
파일: Program.cs 프로젝트: Medet008/skinet
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                // Получение услуг (service)

                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>();
                    var roleManager     = services.GetRequiredService <RoleManager <AppRole> >();
                    await identityContext.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUsersAsync(userManager, roleManager);
                } catch (Exception ex) {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
            }

            host.Run();
        }
예제 #23
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 context = services.GetRequiredService <STContext>();

                    await context.Database.MigrateAsync();

                    await STContextSeed.SeedAsync(context);

                    var userManager    = services.GetRequiredService <UserManager <AppUser> >();
                    var identityContex = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContex.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUderAsync(userManager);
                }catch (Exception ex)
                {
                }
            }
            host.Run();
        }
예제 #24
0
        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 dbContext = services.GetRequiredService <ApplicationDbContext>();
                    await dbContext.Database.MigrateAsync();

                    await AppDbContextSeed.SeedAsync(dbContext, loggerFactory);

                    var userManager     = services.GetRequiredService <UserManager <AppUser> >();
                    var roleManager     = services.GetRequiredService <RoleManager <AppRole> >();
                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    await identityContext.Database.MigrateAsync();

                    await AppIdentityDbContextSeed.SeedUsersAsync(userManager, roleManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError($"Could not create or migrate database, see full error: {ex}");
                }
            }

            host.Run();
        }
예제 #25
0
        public static void 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 <AppIdentityDbContext>();
                    AppIdentityDbContextSeed.EnsureDatabaseMigrations(context);
                    AppIdentityDbContextSeed.EnsureRoleAdminCreated(services).Wait();
                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager, context);

                    var groceryContext = services.GetRequiredService <GroceryContext>();
                    GroceryContextSeed.EnsureDatabaseMigrations(groceryContext);
                    GroceryContextSeed.SeedAsync(groceryContext).Wait();
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #26
0
        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 command = services.GetRequiredService <EcommerceCommandContext>();
                        await EnsureSeed.CommandSeed(command, loggerFactory);

                        var query = services.GetRequiredService <EcommerceQueryContext>();
                        await EnsureSeed.QuerySeed(query, loggerFactory);

                        var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                        var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();
                        await AppIdentityDbContextSeed.SeedAsync(userManager, roleManager);

                        loggerFactory.CreateLogger <Program>().LogInformation("Database Seed with scucess");
                    }
                    catch (Exception ex)
                    {
                        var logger = loggerFactory.CreateLogger <Program>();
                        logger.LogError(ex, "An error occurred seeding the DB.");
                    }
                }

                host.Run();
            }
        }
예제 #27
0
        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 catalogContext = services.GetRequiredService <CatalogContext>();
                    await CatalogContextSeed.SeedAsync(catalogContext, loggerFactory);

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();
                    await AppIdentityDbContextSeed.SeedAsync(userManager, roleManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #28
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 context = services.GetRequiredService <AppDbContext>();
                    //                    context.Database.Migrate();
                    context.Database.EnsureCreated();
                    SeedData.Initialize(services);

                    var identityContext = services.GetRequiredService <AppIdentityDbContext>();
                    identityContext.Database.EnsureCreated();

                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();
                    await AppIdentityDbContextSeed.SeedAsync(userManager, roleManager);
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService <ILogger <Program> >();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
예제 #29
0
        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 AppIdentityDbContextSeed.SeedUsersAsync(userManager);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occured during migration");
                }
            }

            host.Run();
        }
예제 #30
0
        protected HttpClient GetClient()
        {
            var startupAssembly = typeof(Startup).GetTypeInfo().Assembly;
            var contentRoot     = GetProjectPath("src", startupAssembly);
            var builder         = new WebHostBuilder()
                                  .UseContentRoot(contentRoot)
                                  .ConfigureTestServices(InitializeServices)
                                  .UseStartup <Startup>()
                                  .UseStructureMap()
                                  .UseConfiguration(new ConfigurationBuilder()
                                                    .SetBasePath(contentRoot)
                                                    .AddJsonFile("appsettings.json")
                                                    .Build());

            var server = new TestServer(builder);

            using (var scope = server.Host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    AppIdentityDbContextSeed.SeedAsync(userManager).Wait();
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            return(server.CreateClient());
        }