Ejemplo n.º 1
0
 public JancyExpressRoute GenerateRoute(JancyExpressRoutingConfiguration routingConfiguration, JancyExpressScopedRoutingConfiguration scopedRoutingConfiguration, JancyExpressGlobalRoutingConfiguration globalRoutingConfiguration)
 {
     return(new JancyExpressRoute
     {
         Verb = routingConfiguration.Verb.ToString(),
         Template = routingConfiguration.Template,
         Handler = GetHandlerFunc(routingConfiguration, scopedRoutingConfiguration, globalRoutingConfiguration)
     });
 }
Ejemplo n.º 2
0
        private Func <HttpRequest, HttpResponse, RouteData, Task> GetHandlerFunc(JancyExpressRoutingConfiguration routingConfiguration, JancyExpressScopedRoutingConfiguration scopedRoutingConfiguration, JancyExpressGlobalRoutingConfiguration globalRoutingConfiguration)
        {
            return((request, response, routeData) =>
            {
                var serviceProvider = request.HttpContext.RequestServices;
                var httpHandler = GetHttpHandler(routingConfiguration, scopedRoutingConfiguration, globalRoutingConfiguration, serviceProvider, request, response, routeData);

                return httpHandler();
            });
        }
Ejemplo n.º 3
0
        private HttpHandlerDelegate GetHttpHandler(JancyExpressRoutingConfiguration routingConfiguration, JancyExpressScopedRoutingConfiguration scopedRoutingConfiguration, JancyExpressGlobalRoutingConfiguration globalRoutingConfiguration, IServiceProvider serviceProvider, HttpRequest request, HttpResponse response, RouteData routeData)
        {
            HttpHandlerDelegate httpHandler = () =>
            {
                var handler = serviceProvider.GetService <IHttpHandler>(routingConfiguration.HttpHandlerType);
                return(handler.Handle(request, response, routeData));
            };

            var httpHandlerMiddlewares =
                GetHttpHandlerMiddlewares(routingConfiguration.HttpHandlerMiddlewareTypes, serviceProvider)
                .Concat(GetHttpHandlerMiddlewares(scopedRoutingConfiguration.HttpHandlerMiddlewareTypes, serviceProvider))
                .Concat(GetHttpHandlerMiddlewares(globalRoutingConfiguration.HttpHandlerMiddlewareTypes, serviceProvider));

            foreach (var middleware in httpHandlerMiddlewares)
            {
                var previous = httpHandler;
                httpHandler = () => middleware.Handle(request, response, routeData, previous);
            }

            return(httpHandler);
        }
        private JancyExpressRoute GenerateRoute(JancyExpressRoutingConfiguration routingConfiguration, JancyExpressScopedRoutingConfiguration scopedRoutingConfiguration, JancyExpressGlobalRouterConfiguration globalRouterConfiguration)
        {
            var routeGenerator = GetRouteGenerator(routingConfiguration.HttpHandlerType);

            return(routeGenerator.GenerateRoute(routingConfiguration, scopedRoutingConfiguration, globalRouterConfiguration.GlobalRoutingConfiguration));
        }