// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider) { if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); var roleSeed = new RoleSeed(Configuration); roleSeed.CreateRoles(serviceProvider).Wait(); }
public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); // adapted to make sure roles are created first using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var serviceProvider = services.GetRequiredService <IServiceProvider>(); var conf = services.GetRequiredService <IConfiguration>(); try { RoleSeed.CreateRoles(serviceProvider, conf).Wait(); } catch (Exception e) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(e.Message, "Error occurred in seeding database."); } } catch (Exception e) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(e, "An error occurred while creating roles"); } } host.Run(); }