/// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private async Task LogRequest(HttpContext context)
        {
            context.Request.EnableBuffering();

            await using var requestStream = _recyclableMemoryStreamManager.GetStream();
            await context.Request.Body.CopyToAsync(requestStream);

            apiLogModel = new APILogHistory()
            {
                Id          = Guid.NewGuid(),
                Method      = context.Request.Method,
                Schema      = context.Request.Scheme,
                Host        = context.Request.Host.ToString(),
                Path        = context.Request.Path,
                QueryString = context.Request.QueryString.ToString(),
                RequestBody = ReadStreamInChunks(requestStream)
            };

            //_logger.LogInformation($"Http Request Information:{Environment.NewLine}" +
            //                       $"Method:{context.Request.Method} " +
            //                       $"Schema:{context.Request.Scheme} " +
            //                       $"Host: {context.Request.Host} " +
            //                       $"Path: {context.Request.Path} " +
            //                       $"QueryString: {context.Request.QueryString} " +
            //                       $"Request Body: {ReadStreamInChunks(requestStream)}");
            context.Request.Body.Position = 0;
        }
 public RequestResponseLoggingMiddleware(RequestDelegate next, ILoggerFactory loggerFactory, IWebHostEnvironment environment)
 {
     _next   = next;
     _logger = loggerFactory.CreateLogger <RequestResponseLoggingMiddleware>();
     _recyclableMemoryStreamManager = new RecyclableMemoryStreamManager();
     _environment = environment;
     apiLogModel  = new APILogHistory();
 }