private void OnCompleted(EventResponseErrorArgs error) { if (System.Threading.Interlocked.CompareExchange(ref mCompletedStatus, 1, 0) == 0) { Time = TimeWatch.GetElapsedMilliseconds() - mStartTime; mClientAgent.Client.ClientError = null; mClientAgent.Client.DataReceive = null; Server.Push(mClientAgent); //System.Threading.Interlocked.Decrement(ref RequestCount); //mHistoryRequests.Remove(mRequestID, out RequestAgent value); try { UrlRoute.FilterExecuted(this.Request, this.Response, this.Server, this.Code, this.Time); Completed?.Invoke(this); } catch (Exception e_) { if (Request.Server.EnableLog(BeetleX.EventArgs.LogType.Error)) { Request.Server.Log(BeetleX.EventArgs.LogType.Error, $"gateway request {Server.Host}:{Server.Port} process completed event error {e_.Message}@{e_.StackTrace}"); } } finally { Request.ClearStream(); if (error != null) { Server.Gateway.OnResponseError(error); } else { Request.Recovery(); } } } }
protected virtual void LoadUrlRoutes(Assembly assembly) { foreach (var method in assembly.FindMethodsWithAttribute<UrlAttribute>()) { UrlRoute route = new UrlRoute { Method = method }; foreach (var attr in method.GetAttributes<UrlAttribute>()) { route.Attributes.Add(attr); } UrlRoutes.Add(route); } }
public FormTag(TModel model) : base(UrlRoute.For(model)) { }
public FormTag() : base(UrlRoute.For <TModel>()) { }
public string UrlFor <TModel>(TModel model) { return(UrlRoute.For(model)); }
public string UrlFor <TModel>() { return(UrlRoute.For <TModel>()); }
public static string For <TModel, TRouteModel>(this UrlHelpers <TModel> helper, TRouteModel routeModel) { return(UrlRoute.For(routeModel)); }