/// <summary> /// The Configure /// </summary> /// <param name="app">The app<see cref="IApplicationBuilder"/></param> /// <param name="env">The env<see cref="IHostingEnvironment"/></param> /// <param name="userManager">The userManager<see cref="UserManager{ApplicationUser}"/></param> /// <param name="roleManager">The roleManager<see cref="RoleManager{ApplicationRole}"/></param> /// <param name="context">The context<see cref="ApplicationDbContext"/></param> public void Configure(IApplicationBuilder app, IWebHostEnvironment env, UserManager <ApplicationUser> userManager, RoleManager <ApplicationRole> roleManager, ApplicationDbContext context) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } try { using (var serviceScope = app.ApplicationServices.GetRequiredService <IServiceScopeFactory>().CreateScope()) { serviceScope.ServiceProvider.GetService <ApplicationDbContext>().Database.EnsureCreated(); } } catch (Exception ex) { var log = new Log(); log.LogMessage(ex.Message + " " + ex.StackTrace + " " + ex.InnerException); context.Logger.Add(log); context.SaveChangesAsync().Wait(); } // Use Forwarded Header to keep track of client info. app.UseForwardedHeaders(); app.UseStaticFiles(); // Use Authentication app.UseAuthentication(); app.UseRouting(); app.UseAuthorization(); app.UseCors("CorsPolicy"); app.UseEndpoints(endpoints => { endpoints.MapControllers(); // Map attribute-routed API controllers endpoints.MapDefaultControllerRoute(); // Map conventional MVC controllers using the default route endpoints.MapRazorPages(); }); // Seed Initial User DbSeedData.SeedData(userManager, roleManager, context).Wait(); }