public static IMiddlewareSetup AddCustomController(this IMiddlewareSetup middlewareSetup,
                                                           Func <Environment, Task <MiddlewareInvocationEnum> > handler)
        {
            middlewareSetup.AddMiddleWare(new CustomMiddleware(handler));

            return(middlewareSetup);
        }
        public static IMiddlewareSetup AddControllerFunction(this IMiddlewareSetup middlewareSetup, Func <Request, bool> controllerFunctionCanHandleRequest, Func <Request, object> controllerFunc)
        {
            var controllerFunctionMiddleware = new ControllerFunctionMiddleware(controllerFunctionCanHandleRequest,
                                                                                req =>
            {
                var response = controllerFunc(req);

                return(ResponseFactory.From(response));
            });

            middlewareSetup.AddMiddleWare(controllerFunctionMiddleware);

            return(middlewareSetup);
        }
        public static IMiddlewareSetup AddCustomController(this IMiddlewareSetup middlewareSetup,
                                                           string route, Func <Environment, Task> handler)
        {
            middlewareSetup.AddCustomController(async e =>
            {
                if (e.RequestPath.Equals(route, StringComparison.OrdinalIgnoreCase))
                {
                    await handler(e);
                    return(MiddlewareInvocationEnum.StopChain);
                }

                return(MiddlewareInvocationEnum.ContinueToNext);
            });

            return(middlewareSetup);
        }
 public static IMiddlewareSetup AddControllerFunction(this IMiddlewareSetup middlewareSetup, string path, Func <Request, object> controllerFunc)
 => middlewareSetup.AddControllerFunction(req => req.RequestPath.Equals(path, StringComparison.InvariantCultureIgnoreCase), controllerFunc);
 public static IMiddlewareSetup AddControllerFunctionThatReturnsHttpContent(
     this IMiddlewareSetup middlewareSetup,
     Func <Request, bool> canHandle,
     Func <Request, (HttpContent content, int statusCode)> controllerFunc)
 public static IMiddlewareSetup AddControllerFunctionThatReturnsHttpContent(
     this IMiddlewareSetup middlewareSetup,
     Func <Request, bool> canHandle,
     Func <Request, HttpContent> controllerFunc)
 => AddControllerFunction(middlewareSetup, canHandle, controllerFunc);
        public static IMiddlewareSetup AddDynamicController(this IMiddlewareSetup middlewareSetup)
        {
            middlewareSetup.AddMiddleWare(new DynamicControllerMiddleware());

            return(middlewareSetup);
        }