public void InsertLog(ApiLogCE apiLog) { try { new LoggingCAD().InsertLog(apiLog); } catch { throw; } }
public void OutgoingMessageAsync(ApiLogCE apiLog) { try { apiLog.RequestType = "Response"; var sqlErrorLogging = new LoggingCAD(); sqlErrorLogging.InsertLog(apiLog); } catch { throw; } }
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; } }
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); }