Exemplo n.º 1
0
        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();
            });
        }
Exemplo n.º 2
0
        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>();
        }