public override async void OnSuccess(MethodExecutionArgs args) { var context = (TraceAttributeContext)args.MethodExecutionTag; context.Stopwatch.Stop(); PopParentMethodId(); var httpResponse = args.ReturnValue as HttpResponseMessage; if (httpResponse != null) { var httpBoundaryResponseMessage = new TraceHttpBoundaryResponseMessage { TraceId = context.TraceId, MethodId = context.MethodId, Timestamp = DateTime.Now, Headers = httpResponse.Headers.GetHeaders(), Content = (httpResponse.Content != null) ? await httpResponse.Content.ReadAsStringAsync() : "", HttpStatusCode = httpResponse.StatusCode, }; httpBoundaryResponseMessage.Broadcast(); } var message = new TraceMessage { TraceId = context.TraceId, MethodId = context.MethodId, ParentMethodId = context.ParentMethodId, TraceEvent = TraceEvent.OnMethodSuccess, Timestamp = DateTime.Now, MethodName = _methodName, ReturnValue = (args.ReturnValue != null) ? args.ReturnValue.ToString() : string.Empty, TimeTakenInMilliseconds = context.Stopwatch.ElapsedMilliseconds }; message.Broadcast(); }
public void SendHttpBoundaryResponse(TraceHttpBoundaryResponseMessage message) { Clients.All.broadcastHttpResponseMessage(message); }
public void Broadcast(TraceHttpBoundaryResponseMessage message) { Broadcast(message, "traceHub", "SendHttpBoundaryResponse"); }
public static void Broadcast(this TraceHttpBoundaryResponseMessage message) { SignalRClient.Instance.Broadcast(message); }