public static bool Audit(int id, Dictionary <string, object> contextData, string eventText, params string[] args) { try { var auditEvent = new AuditEvent(id, String.Format(eventText, args), contextData); AuditingProvider.Audit(auditEvent); } catch (Exception ex) { ExceptionPolicy.HandleException(ex, Defaults.DefaultExceptionPolicy); } return(true); }
/// <summary> /// Almacena un modelo de auditoría para la operación actual /// </summary> /// <param name="actionContext">actionContext</param> /// <param name="linkedOps">Lista de linked operations de la acción realizandose actualmente</param> /// <param name="linkedGroups">Lista de linked operation groups de la acción realizandose actualmente</param> private void SaveOperationAuditModel(HttpActionContext actionContext, ICollection <LinkedOperationsAttribute> linkedOps) { Guid requestGuid = actionContext.Request.GetCorrelationId(); int actualOperationId = 0; int actualGroupId = 0; if (linkedOps.Count > 0) { foreach (var linkedOp in linkedOps) { if (linkedOp.AllowedOperations.Count > 0) { actualOperationId = (int)linkedOp.AllowedOperations.First(); } } } string user = string.Empty; if (HttpContext.Current.User == null || HttpContext.Current.User.Identity == null || string.IsNullOrWhiteSpace(HttpContext.Current.User.Identity.Name)) { try { if (IsAuthorized(actionContext.Request.Headers.Authorization, new List <Operations>())) { user = HttpContext.Current.User.Identity.Name; } } catch { user = string.Empty; } } else { user = HttpContext.Current.User.Identity.Name; } AuditingProvider.SetOperationAuditingModel(user, actualOperationId, actualGroupId, requestGuid); }