Exemple #1
0
        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());
 }
Exemple #4
0
        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));
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        public static void BuildAndUseRouter(this IRouteBuilder builder)
        {
            IRouter routes = builder.Build();

            App.UseRouter(routes);
        }
Exemple #7
0
 private void ConfigureRoutes(IRouteBuilder routeBuilder)
 {
     routeBuilder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}");
     routeBuilder.Build();
 }
Exemple #8
0
 private ViewRouterDelegate BuildRouter()
 {
     return(_routeBuilder.Build());
 }