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; }); }
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); }
public static void Route(HTTPMethod method, string route, RouteCallback_A callback) => Routing.AddHandler(method, (RouteArg)route, callback);
public static void All(HTTPMethod method, RouteCallback_A callback) => Routing.AddHandler(method, callback);
public PartialController(RoutePatternMatch route, RouteCallback_A callback) : this(null, route.CreateCallback(callback)) { }
public static void Route(string method, string route, RouteCallback_A callback) => Routing.AddHandler((MethodArg)method, (RouteArg)route, callback);
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; }
internal static void Add(RouteCallback_A rc) => Add(new RouteCallback(rc));
public static void Delete(RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.DELETE, route, callback);
public static void Route(HTTPMethod method, RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(method, route, callback);
internal static void Add(RouteCallback_A rc, int priority) => Add(new RouteCallback(rc, priority));
public static void Route(string method, RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler((MethodArg)method, route, callback);
public Controller(HTTPMethod method, RoutePatternMatch route, RouteCallback_A callback) : this(method.ToString(), route, route.CreateCallback(callback)) { }
public Controller(HTTPMethod method, string route, RouteCallback_A callback) : this(method.ToString(), route, callback) { }
public static void All(RouteCallback_A callback) => Routing.AddHandler(callback);
internal RouteCallback(RouteCallback_A cb, int priority = 0) { this.Callback = cb; this.Priority = priority; }
public static void Put(RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.PUT, route, callback);
internal void PushResult(Response result) { handlers.Add(new HandlerResult(currentHandler, result, currentHandlerMessages.ToArray())); currentHandlerMessages.Clear(); currentHandler = null; }
public static void Route(RoutePatternMatch route, RouteCallback_A callback) => Routing.AddHandler(route, callback);
public Controller(string method, string route, RouteCallback_A callback) { this.Route = route; this.Method = method; this.Callback = callback; }
internal void PushHandler(RouteCallback_A handler) { currentHandler = handler; }
public static void Put(string route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.PUT, (RouteArg)route, callback);
internal HandlerResult(RouteCallback_A handler, Response result, string[] messages) { this.Handler = handler; this.Response = result; this.Messages = messages; }
public static void Delete(string route, RouteCallback_A callback) => Routing.AddHandler(HTTPMethod.DELETE, (RouteArg)route, callback);
public static void Route(string route, RouteCallback_A callback) => Routing.AddHandler((RouteArg)route, callback);
public PartialController(string route, RouteCallback_A callback) { this.Route = route; this.Callback = callback; }