internal RouteCallback_A CreateCallback(RouteCallback cb)
        {
            RoutePatternMatch This     = this;
            RouteCallback_A   callback = cb.Callback;

            return((Request req) =>
            {
                RoutePatternMatchResult result = This.Compare(req.cw.Route);
                req.Parameters = new NameValueCollection(result.Parameters.Length);
                foreach ((string name, string value) in result.Parameters)
                {
                    req.Parameters.Add(name, value);
                }
                return (result.Match) ? callback(req) : PassThrough.Skip;
            });
        }
Esempio n. 2
0
            internal static void Add(RouteCallback rc)
            {
                RouteCallback_A finalHandler = rc.Callback;

                if (Server.Config.EnableRouteDiagnostics)
                {
                    finalHandler = (Request req) =>
                    {
                        req.Diagnostics.PushHandler(rc.Callback);
                        Response res = rc.Callback(req);
                        req.Diagnostics.PushResult(res);
                        return(res);
                    };
                }
                int priority = rc.Priority;

                if (handlers[priority] == null)
                {
                    handlers[priority] = new List <RouteCallback_A>(1024);
                }
                handlers[priority].Add(finalHandler);
            }
Esempio n. 3
0
 public static void Route(HTTPMethod method, string route, RouteCallback_A callback) => Routing.AddHandler(method, (RouteArg)route, callback);
Esempio n. 4
0
 public static void All(HTTPMethod method, RouteCallback_A callback) => Routing.AddHandler(method, callback);
Esempio n. 5
0
 public PartialController(RoutePatternMatch route, RouteCallback_A callback) : this(null, route.CreateCallback(callback))
 {
 }
Esempio n. 6
0
 public static void Route(string method, string route, RouteCallback_A callback) => Routing.AddHandler((MethodArg)method, (RouteArg)route, callback);
Esempio n. 7
0
 public Controller(string method, RoutePatternMatch route, RouteCallback_A callback) :                       this(method, null, route.CreateCallback(callback))
 {
 }
 public void Deconstruct(out RouteCallback_A handler, out Response res, out string[] messages)
 {
     handler  = this.Handler;
     res      = this.Response;
     messages = this.Messages;
 }
Esempio n. 9
0
 internal static void Add(RouteCallback_A rc) => Add(new RouteCallback(rc));
Esempio n. 10
0
 public static void Delete(RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.DELETE, route, callback);
Esempio n. 11
0
 public static void Route(HTTPMethod method, RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(method, route, callback);
Esempio n. 12
0
 internal static void Add(RouteCallback_A rc, int priority) => Add(new RouteCallback(rc, priority));
Esempio n. 13
0
 public static void Route(string method, RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler((MethodArg)method, route, callback);
Esempio n. 14
0
 public Controller(HTTPMethod method, RoutePatternMatch route, RouteCallback_A callback) :                   this(method.ToString(), route, route.CreateCallback(callback))
 {
 }
Esempio n. 15
0
 public Controller(HTTPMethod method, string route, RouteCallback_A callback) :                              this(method.ToString(), route, callback)
 {
 }
Esempio n. 16
0
 public static void All(RouteCallback_A callback) => Routing.AddHandler(callback);
Esempio n. 17
0
 internal RouteCallback(RouteCallback_A cb, int priority = 0)
 {
     this.Callback = cb;
     this.Priority = priority;
 }
Esempio n. 18
0
 public static void Put(RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.PUT, route, callback);
Esempio n. 19
0
 internal void PushResult(Response result)
 {
     handlers.Add(new HandlerResult(currentHandler, result, currentHandlerMessages.ToArray()));
     currentHandlerMessages.Clear();
     currentHandler = null;
 }
Esempio n. 20
0
 public static void Route(RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(route, callback);
Esempio n. 21
0
 public Controller(string method, string route, RouteCallback_A callback)
 {
     this.Route    = route;
     this.Method   = method;
     this.Callback = callback;
 }
Esempio n. 22
0
 internal void PushHandler(RouteCallback_A handler)
 {
     currentHandler = handler;
 }
Esempio n. 23
0
 public static void Put(string route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.PUT, (RouteArg)route, callback);
Esempio n. 24
0
 internal HandlerResult(RouteCallback_A handler, Response result, string[] messages)
 {
     this.Handler  = handler;
     this.Response = result;
     this.Messages = messages;
 }
Esempio n. 25
0
 public static void Delete(string route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.DELETE, (RouteArg)route, callback);
Esempio n. 26
0
 public static void Route(string route, RouteCallback_A callback) => Routing.AddHandler((RouteArg)route, callback);
Esempio n. 27
0
 public PartialController(string route, RouteCallback_A callback)
 {
     this.Route    = route;
     this.Callback = callback;
 }