private async Task LogApiInteraction(HttpRequestMessage requestMessage, HttpResponseMessage response, string responseMessage, TimeSpan elapsed, string userId)
        {
            try
            {
                bool.TryParse(ConfigurationManager.AppSettings["EnableApiLogging"], out bool enableApiLogging);
                var apiSessionId = _clientStorage?.Get("ApiSessionId") ?? (enableApiLogging ? userId.Clean() : null);

                if (apiSessionId != null && _apiRecorderSessionItemRepository != null)
                {
                    if (responseMessage == null && response?.Content != null)
                    {
                        responseMessage = await response.Content?.ReadAsStringAsync();
                    }

                    await _apiRecorderSessionItemRepository.CreateAsync(new Data.Entity.ApiRecorderSessionItem(apiSessionId, requestMessage.RequestUri.AbsolutePath)
                    {
                        HttpMethod      = requestMessage.Method.ToString(),
                        RawRequestBody  = GetRequestJsonBody(requestMessage),
                        RawResponseBody = responseMessage.Ellipsis(32000),
                        RequestHeaders  = ToJsonIndented(requestMessage.Headers),
                        ResponseHeaders = ToJsonIndented(response.Headers),
                        ElapsedTimeSpan = elapsed.ToString(),
                        ElapsedMS       = elapsed.TotalMilliseconds
                    });
                }
            }
            catch (Exception)
            {
            }
        }
        private async Task LogApiInteraction(HttpRequestMessage requestMessage, HttpResponseMessage response, string responseMessage, TimeSpan elapsed)
        {
            var apiSessionId = _clientStorage?.Get("ApiSessionId");

            if (apiSessionId != null && _apiRecorderSessionItemRepository != null)
            {
                if (responseMessage == null && response?.Content != null)
                {
                    responseMessage = await response.Content?.ReadAsStringAsync();
                }

                await _apiRecorderSessionItemRepository.CreateAsync(new Data.Entity.ApiRecorderSessionItem(apiSessionId, requestMessage.RequestUri.AbsolutePath)
                {
                    HttpMethod      = requestMessage.Method.ToString(),
                    RawRequestBody  = GetRequestJsonBody(requestMessage),
                    RawResponseBody = responseMessage.Ellipsis(32000),
                    RequestHeaders  = ToJsonIndented(requestMessage.Headers),
                    ResponseHeaders = ToJsonIndented(response.Headers),
                    ElapsedTimeSpan = elapsed.ToString(),
                    ElapsedMS       = elapsed.TotalMilliseconds
                });
            }
        }
Пример #3
0
 public ActionResult ApiSessionRecorder()
 {
     ViewBag.SessionId = _clientStorage.Get("ApiSessionId");
     return(View());
 }