// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); }); using (var scope = app.ApplicationServices.CreateScope()) { //initialize & seed database using (var dbContext = scope.ServiceProvider.GetService <ClientIntegratorDbContext>()) { ClientIntegratorDbContext = dbContext; var connectionString = Configuration.GetConnectionString("ClientIntegratorDb"); if (connectionString != "InMemory") { //initialize & migrate to latest version dbContext.Database.Migrate(); } var roleManager = scope.ServiceProvider.GetService <RoleManager <PortalRole> >(); var userManager = scope.ServiceProvider.GetService <UserManager <PortalUser> >(); var userStore = scope.ServiceProvider.GetService <IUserStore <PortalUser> >(); if (!userManager.SupportsUserEmail) { throw new NotSupportedException("The UI requires a user store with email support."); } IUserEmailStore <PortalUser> emailStore = (IUserEmailStore <PortalUser>)userStore; if (!env.IsProduction()) { DbSeeder.Seed(dbContext, emailStore, userStore, userManager, roleManager, Configuration).Wait(); } else { DbSeeder.SeedProduction(dbContext, emailStore, userStore, userManager, roleManager, Configuration).Wait(); } } } }