Esempio n. 1
0
 public void InsertLog(ApiLogCE apiLog)
 {
     try
     {
         new LoggingCAD().InsertLog(apiLog);
     }
     catch
     {
         throw;
     }
 }
Esempio n. 2
0
 public void OutgoingMessageAsync(ApiLogCE apiLog)
 {
     try
     {
         apiLog.RequestType = "Response";
         var sqlErrorLogging = new LoggingCAD();
         sqlErrorLogging.InsertLog(apiLog);
     }
     catch
     {
         throw;
     }
 }
Esempio n. 3
0
        public void InsertLog(ApiLogCE apiLog)
        {
            try
            {
                DbCommand cmd = base.CrearComandoSP();
                cmd.CommandText = "ApiLog_Insertar";

                cmd.Parameters.Add(new SqlParameter("@Host", apiLog.Host));
                cmd.Parameters.Add(new SqlParameter("@Headers", apiLog.Headers));
                cmd.Parameters.Add(new SqlParameter("@StatusCode", apiLog.StatusCode));
                cmd.Parameters.Add(new SqlParameter("@RequestBody", apiLog.RequestBody));
                cmd.Parameters.Add(new SqlParameter("@RequestedMethod", apiLog.RequestedMethod));
                cmd.Parameters.Add(new SqlParameter("@UserHostAddress", apiLog.UserHostAddress));
                cmd.Parameters.Add(new SqlParameter("@Useragent", apiLog.Useragent));
                cmd.Parameters.Add(new SqlParameter("@AbsoluteUri", apiLog.AbsoluteUri));
                cmd.Parameters.Add(new SqlParameter("@RequestType", apiLog.RequestType));
                cmd.CommandTimeout = 120;
                base.EjecutarComando(cmd);
            }
            catch
            {
                throw;
            }
        }
Esempio n. 4
0
        protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request,
                                                                      CancellationToken cancellationToken)
        {
            var requestedMethod = request.Method;
            var userHostAddress = HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "0.0.0.0";
            var useragent       = request.Headers.UserAgent.ToString();
            var requestMessage  = await request.Content.ReadAsByteArrayAsync();

            var uriAccessed = request.RequestUri.AbsoluteUri;

            var responseHeadersString = new StringBuilder();

            foreach (var header in request.Headers)
            {
                responseHeadersString.Append($"{header.Key}: {String.Join(", ", header.Value)}{Environment.NewLine}");
            }

            var messageLoggingHandler = new LoggingCRN();

            var requestLog = new ApiLogCE()
            {
                Headers         = responseHeadersString.ToString(),
                AbsoluteUri     = uriAccessed,
                Host            = userHostAddress,
                RequestBody     = Encoding.UTF8.GetString(requestMessage),
                UserHostAddress = userHostAddress,
                Useragent       = useragent,
                RequestedMethod = requestedMethod.ToString(),
                StatusCode      = string.Empty
            };

            messageLoggingHandler.IncomingMessageAsync(requestLog);

            var response = await base.SendAsync(request, cancellationToken);

            byte[] responseMessage = null;
            if (response.IsSuccessStatusCode)
            {
                if (response.Content != null)
                {
                    responseMessage = await response.Content.ReadAsByteArrayAsync();
                }
                else
                {
                    responseMessage = Encoding.UTF8.GetBytes(response.ReasonPhrase);
                }
            }

            var responseLog = new ApiLogCE()
            {
                Headers         = responseHeadersString.ToString(),
                AbsoluteUri     = uriAccessed,
                Host            = userHostAddress,
                RequestBody     = responseMessage == null ? "" : Encoding.UTF8.GetString(responseMessage),
                UserHostAddress = userHostAddress,
                Useragent       = useragent,
                RequestedMethod = requestedMethod.ToString(),
                StatusCode      = string.Empty
            };

            messageLoggingHandler.OutgoingMessageAsync(responseLog);
            return(response);
        }