Ejemplo n.º 1
0
 public void SendHttpBoundaryResponse(TraceHttpBoundaryResponseMessage message)
 {
     Clients.All.broadcastHttpResponseMessage(message);
 }
Ejemplo n.º 2
0
        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();
        }