Exemplo n.º 1
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, DiagnosticListener diagnosticListener)
        {
            var listener = new ApplicationDiagnosticListener();

            diagnosticListener.SubscribeWithAdapter(listener);

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();
            app.UseAuthentication();
            app.UseSession();

            var routeBuilder = new RouteBuilder(app);

            routeBuilder.MapGet("CreateUser", context =>
            {
                var firstName   = context.Request.Query["firstName"];
                var lastName    = context.Request.Query["lastName"];
                var email       = context.Request.Query["email"];
                var password    = context.Request.Query["password"];
                var userService = context.RequestServices.GetService <IUserService>();
                userService.RegisterUser(new UserModel {
                    FirstName = firstName, LastName = lastName, Email = email, Password = password
                });
                return(context.Response.WriteAsync($"User {firstName} {lastName} has been sucessfully created."));
            });
            var newUserRoutes = routeBuilder.Build();

            app.UseRouter(newUserRoutes);

            app.UseWebSockets();
            app.UseCommunicationMiddleware();

            var supportedCultures   = CultureInfo.GetCultures(CultureTypes.AllCultures);
            var localizationOptions = new RequestLocalizationOptions
            {
                DefaultRequestCulture = new RequestCulture("en-US"),
                SupportedCultures     = supportedCultures,
                SupportedUICultures   = supportedCultures
            };

            localizationOptions.RequestCultureProviders.Clear();
            localizationOptions.RequestCultureProviders.Add(new CultureProviderResolverService());

            app.UseRequestLocalization(localizationOptions);

            app.UseMvc(routes =>
            {
                routes.MapRoute(name: "areaRoute",
                                template: "{area:exists}/{controller=Home}/{action=Index}");

                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

            app.UseStatusCodePages("text/plain", "HTTP Error - Status Code: {0}");

            var provider     = app.ApplicationServices;
            var scopeFactory = provider.GetRequiredService <IServiceScopeFactory>();

            using (var scope = scopeFactory.CreateScope())
                using (var context = scope.ServiceProvider.GetRequiredService <GameDbContext>())
                {
                    context.Database.Migrate();
                }
        }
Exemplo n.º 2
0
        /*
         * private static void ApiPipeline(IApplicationBuilder app)
         * {
         *  app.Run(async context => {
         *      await context.Response.WriteAsync("Branched to Api Pipeline");
         *  });
         * }
         *
         * private static void WebPipeline(IApplicationBuilder app)
         * {
         *  app.MapWhen(context => {
         *      return context.Request.Query.ContainsKey("usr");
         *  }, UserPipeline);
         *
         *  app.Run(async context => {
         *      await context.Response.WriteAsync("Branched to Web Pipeline");
         *  });
         * }
         *
         * private static void UserPipeline(IApplicationBuilder app)
         * {
         *  app.Run(async context => {
         *      await context.Response.WriteAsync("Branched to User Pipeline");
         *  });
         * }
         */

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DiagnosticListener diagnosticListener)
        {
            /*
             * app.Map("/api", ApiPipeline);
             * app.Map("/web", WebPipeline);
             * app.Use(next => async context => {
             *  await context.Response.WriteAsync("Called Use.");
             *  await next.Invoke(context);
             * });
             *
             * app.Run(async context => {
             *  await context.Response.WriteAsync("Finished with Run");
             * });
             */

            var listener = new ApplicationDiagnosticListener();

            diagnosticListener.SubscribeWithAdapter(listener);

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseDeveloperExceptionPage();
                // app.UseExceptionHandler("/Error");
                // app.UseHsts();
            }

            var routeBuilder = new RouteBuilder(app);

            routeBuilder.MapGet("CreateUser", context => {
                var firstName = context.Request.Query["firstName"];
                var lastName  = context.Request.Query["lastName"];
                var email     = context.Request.Query["email"];
                var password  = context.Request.Query["password"];

                var userService = context.RequestServices.GetService <IUserService>();

                userService.RegisterUser(new UserModel {
                    FirstName = firstName, LastName = lastName, Password = password, Email = email, EmailConfirmed = true
                });

                return(context.Response.WriteAsync($"User {firstName} {lastName} has been successfully created."));
            });

            var newUserRoutes = routeBuilder.Build();

            app.UseRouter(newUserRoutes);

            using (StreamReader iisUrlRewriteStreamReader = File.OpenText("Rewrite/IISUrlRewrite.xml"))
            {
                var options = new RewriteOptions().AddIISUrlRewrite(iisUrlRewriteStreamReader); //.AddRewrite("NewUser", "/UserRegistration/Index", false);
                app.UseRewriter(options);
            }

            var supportedCultures   = CultureInfo.GetCultures(CultureTypes.AllCultures);
            var localizationOptions = new RequestLocalizationOptions {
                DefaultRequestCulture = new RequestCulture("en-US"),
                SupportedCultures     = supportedCultures,
                SupportedUICultures   = supportedCultures
            };

            localizationOptions.RequestCultureProviders.Clear();
            localizationOptions.RequestCultureProviders.Add(new CultureProviderResolverService());

            app.UseCookiePolicy();
            app.UseStaticFiles();
            app.UseSession();
            app.UseRouting();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseWebSockets();
            app.UseCommunicationMiddleware();
            // app.UseDirectoryBrowser();
            app.UseRequestLocalization(localizationOptions);
            app.UseStatusCodePages("text/plain", "HTTP Error Status Code: {0}");

            /*
             * app.UseSwagger();
             * app.UseSwaggerUI(c => {
             *  c.SwaggerEndpoint("/swagger/v1/swagger.json", "LEARNING ASP.CORE 3.0 V1");
             * });
             */
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapAreaControllerRoute(name: "areas", areaName: "Account", pattern: "Account/{controller=Home}/{action=Index}/{id?}");
                endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
            });

            /*
             * var provider = app.ApplicationServices;
             * var scopeFactory = provider.GetRequiredService<IServiceScopeFactory>();
             *
             * using var scope = scopeFactory.CreateScope();
             * scope.ServiceProvider.GetRequiredService<GameDbContext>()
             *  .Database.Migrate();
             */
        }