예제 #1
0
        public async Task DeleteResponseSnap(ResponseSnap responseSnap)
        {
            if (responseSnap == null)
            {
                throw new ArgumentNullException(nameof(responseSnap));
            }

            await _responseSnapRepository.Delete(responseSnap);
        }
예제 #2
0
        public static ResponseSnap PreResponse(MonitorEvent item, string traceId)
        {
            var success = GetValue <bool>(item.Data, MonitorKeys.response_success);
            var body    = GetValue <string>(item.Data, MonitorKeys.response_body);

            if (false)
            {
                if (success && item.EventType == RequestTypeEnum.Http.ToString().ToLowerInvariant())
                {
                    success = TryParseJson(body, out JObject jObject);
                    if (success)
                    {
                        success = jObject.TryGetValue("code", out JToken jToken);
                        if (success)
                        {
                            success = jToken != null && jToken.ToString() == "0";
                        }
                    }
                }
                else if (success && item.EventType == RequestTypeEnum.Signalr.ToString().ToLowerInvariant())
                {
                    success = TryParseJson(body, out JObject jObject);
                    if (success)
                    {
                        success = jObject.TryGetValue("success", out JToken jToken);
                        if (success)
                        {
                            success = jToken != null && jToken.ToString().ToLowerInvariant() == "true";
                        }
                    }
                }
            }

            // response
            var contentlength = body == null ? 0 : Encoding.Default.GetByteCount(body);
            var elapsed       = GetValue <long>(item.Data, MonitorKeys.response_elapsed);
            var statusCode    = GetValue <int?>(item.Data, MonitorKeys.response_statuscode);
            var snap          = new ResponseSnap
            {
                TraceId       = traceId,
                StatusCode    = statusCode,
                Success       = success,
                ContentLength = contentlength,
                ResponseBody  = body,
                Elapsed       = elapsed,
                CreateTime    = DateTime.Now,
            };

            return(snap);
        }