public void Configure( IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IServiceProvider services, FarmLoggerProvider farmProvider, ApplicationPartManager parts ) { var configFeature = new ConfigureFeature(); parts.PopulateFeature(configFeature); loggerFactory.AddProvider(farmProvider); app.UseForwardedHeaders(); app.UseStatusCodePages(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAddRoleClaimsToUserMiddleware(); app.UseAuthorization(); foreach (var module in configFeature.ConfigurePipeline) { module.Configure(app, services, this.WebHostEnvironment); } app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("defaultArea", "{area:exists}/{controller=Home}/{action=Index}"); endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}"); endpoints.MapControllers(); endpoints.MapRazorPages(); }); }
public void ConfigureServices(IServiceCollection services) { // Cookies services.Configure <CookiePolicyOptions>(o => { o.CheckConsentNeeded = c => true; o.MinimumSameSitePolicy = SameSiteMode.None; }); // Database services.AddDbContext <IdentityContext>(o => o.UseNpgsql(this.Configuration.GetConnectionString("Identity"))); services.AddDbContext <FarmMasterContext>(o => o.UseNpgsql(this.Configuration.GetConnectionString("FarmMaster"))); // Email services.AddSingleton <IConfigureOptions <EmailSenderConfig>, ConfigureEmailOptions>(); services.AddTemplatedEmailSender(); // MVC & Modules & Run OnConfigureServices features services.AddControllersWithViews() .AddFarmMasterBuiltinModules(services, this.WebHostEnvironment) .AddRazorRuntimeCompilation(); services.AddRazorPages(); services.AddRouting(o => { o.LowercaseQueryStrings = false; o.LowercaseUrls = false; }); var provider = services.BuildServiceProvider(); var appParts = provider.GetRequiredService <ApplicationPartManager>(); var feature = new ConfigureFeature(); appParts.PopulateFeature(feature); foreach (var configFeature in feature.ConfigureServices) { configFeature.ConfigureServices(services, this.Configuration, appParts); } // Misc services.AddDataAccessLogicLayer(); services.AddSingleton <FarmLoggerProvider>(); }