public IRouter Build() { var routeCollection = new RouteCollection(); foreach (var route in Routes.OfType <Route>()) { var constraints = new Dictionary <string, object>(); foreach (var kv in route.Constraints) { constraints.Add(kv.Key, kv.Value); } var prefixedRoute = new Route( _baseRouteBuilder.DefaultHandler, route.Name, _routePrefix + route.RouteTemplate, route.Defaults, constraints, route.DataTokens, _constraintResolver); _baseRouteBuilder.Routes.Add(prefixedRoute); } return(_baseRouteBuilder.Build()); }
// Step 2: Swipe the route data in application startup public static IApplicationBuilder UseMvcAndSniffRoutes(this IApplicationBuilder app) { var capture = app.ApplicationServices.GetRequiredService <Capture>(); IRouteBuilder capturedRoutes = null; app.UseMvc(routeBuilder => capturedRoutes = routeBuilder); capture.Router = capturedRoutes?.Build(); return(app); }
public static void Visit(ActionContext actionContext, IRouteBuilder routeBuilder, string action, string controller, string area) { actionContext.RouteData = new RouteData(); actionContext.RouteData.Values.Add(nameof(action), action); actionContext.RouteData.Values.Add(nameof(controller), controller); if (area != null) { actionContext.RouteData.Values.Add(nameof(area), area); } actionContext.RouteData.Routers.Add(routeBuilder.Build()); }
private HostingApplication BuildApplication() { _startup.Configure(_applicationBuilder); //var configure = _hostingOptions.ConfigureApp ?? throw new InvalidOperationException($"No application configured. Please specify an application via HostBuilder.Configure in the host configuration."); //configure(_applicationBuilder); _applicationBuilder.Use(next => new RouterMiddleware(next, _routeBuilder.Build()).Invoke); RequestDelegate application = _applicationBuilder.Build(); var contextFactory = _applicationServices.GetRequiredService <IOwinContextFactory>(); var diagnosticSource = _applicationServices.GetRequiredService <DiagnosticListener>(); return(new HostingApplication(application, contextFactory, diagnosticSource)); }
public IRouter Build() { var routeCollection = new RouteCollection(); foreach (var entry in Routes) { if (entry == null) { continue; } var route = entry as Route; if (route != null) { var constraints = new Dictionary <string, object>(); foreach (var kv in route.Constraints) { constraints.Add(kv.Key, kv.Value); } var prefixedRoute = new Route( _baseRouteBuilder.DefaultHandler, route.Name, _routePrefix + route.RouteTemplate, route.Defaults, constraints, route.DataTokens, _constraintResolver); _baseRouteBuilder.Routes.Add(prefixedRoute); } else { _baseRouteBuilder.Routes.Add(entry); } } return(_baseRouteBuilder.Build()); }
public static void BuildAndUseRouter(this IRouteBuilder builder) { IRouter routes = builder.Build(); App.UseRouter(routes); }
private void ConfigureRoutes(IRouteBuilder routeBuilder) { routeBuilder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}"); routeBuilder.Build(); }
private ViewRouterDelegate BuildRouter() { return(_routeBuilder.Build()); }