public override void MapRoutes(EndpointRoutingBuilder builder) { builder.MapRoutes(StarterOrdering.LastRoute, routes => { // Register routes from SlugRouteTransformer solely needed for URL creation, NOT for route matching. SlugRouteTransformer.Routers.Each(x => x.MapRoutes(routes)); // INFO: Test route // TODO: (mh) (core) Remove test route when not needed anymore. routes.MapLocalizedControllerRoute("RecentlyAddedProducts", "newproducts/", new { controller = "Catalog", action = "RecentlyAddedProducts" }); // TODO: (core) Very last route: PageNotFound? routes.MapControllerRoute("PageNotFound", "{*path}", new { controller = "Error", action = "NotFound" }); }); }
public override void MapRoutes(EndpointRoutingBuilder builder) { builder.MapRoutes(StarterOrdering.EarlyRoute, routes => { //routes.MapControllerRoute( // name: "areas", // pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); routes.MapXmlSitemap(); routes.MapControllers(); routes.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); }
public void ConfigureApplication(IApplicationBuilder app) { var providerContainer = (_appContext as IServiceProviderContainer) ?? throw new ApplicationException($"The implementation of '${nameof(IApplicationContext)}' must also implement '${nameof(IServiceProviderContainer)}'."); providerContainer.ApplicationServices = app.ApplicationServices; // At this stage - after the service container was built - we can set the scoped service container. _engine.Scope = new ScopedServiceContainer( app.ApplicationServices.GetRequiredService <ILifetimeScopeAccessor>(), app.ApplicationServices.GetRequiredService <IHttpContextAccessor>(), app.ApplicationServices.AsLifetimeScope()); var activeModuleStarters = _starters.Where(IsActiveModule).ToArray(); // Configure all modular pipelines var pipelineBuilder = new RequestPipelineBuilder { ApplicationBuilder = app, ApplicationContext = _appContext }; foreach (var starter in activeModuleStarters) { starter.BuildPipeline(pipelineBuilder); } pipelineBuilder.Build(app); // Map all modular endpoints app.UseEndpoints(endpoints => { var routeBuilder = new EndpointRoutingBuilder { ApplicationBuilder = app, ApplicationContext = _appContext, RouteBuilder = endpoints }; foreach (var starter in activeModuleStarters) { starter.MapRoutes(routeBuilder); } routeBuilder.Build(endpoints); }); }