/// <summary> /// Check if the hint is present in the attributes provided. /// </summary> /// <param name="enumValue">The enum value.</param> /// <param name="attributes">the attributes to inspect</param> /// <returns>indicator</returns> public static AuditAttribute GetAudit(this AuditEnum enumValue, Attribute[] attributes) { if (attributes == null) { return(null); } foreach (Attribute attribute in attributes) { var auditAnnotation = attribute as AuditAttribute; if (auditAnnotation == null) { continue; } var auditAnnoValue = auditAnnotation.Value; if (auditAnnoValue == "*") { return(auditAnnotation); } var isListed = IsListed(auditAnnoValue, GetValue(enumValue)); if (isListed) { return(auditAnnotation); } } return(null); }
public AuditContext(String engineURI, String statementName, AuditEnum category, String message) { _engineURI = engineURI; _statementName = statementName; _category = category; _message = message; }
public static String DefaultFormat(String statementName, AuditEnum category, String message) { StringBuilder buf = new StringBuilder(); buf.Append("Statement "); buf.Append(statementName); buf.Append(" "); buf.Append(category.GetPrettyPrintText()); buf.Append(" "); buf.Append(message); return(buf.ToString()); }
/// <summary>Returns the constant. </summary> /// <param name="enumValue">The enum value.</param> /// <returns>constant</returns> public static string GetValue(this AuditEnum enumValue) { switch (enumValue) { case AuditEnum.PROPERTY: return("PROPERTY"); case AuditEnum.EXPRESSION: return("EXPRESSION"); case AuditEnum.EXPRESSION_NESTED: return("EXPRESSION-NESTED"); case AuditEnum.EXPRDEF: return("EXPRDEF"); case AuditEnum.VIEW: return("VIEW"); case AuditEnum.PATTERN: return("PATTERN"); case AuditEnum.PATTERNINSTANCES: return("PATTERN-INSTANCES"); case AuditEnum.STREAM: return("STREAM"); case AuditEnum.SCHEDULE: return("SCHEDULE"); case AuditEnum.INSERT: return("INSERT"); case AuditEnum.DATAFLOW_SOURCE: return("DATAFLOW-SOURCE"); case AuditEnum.DATAFLOW_OP: return("DATAFLOW-OP"); case AuditEnum.DATAFLOW_TRANSITION: return("DATAFLOW-TRANSITION"); case AuditEnum.CONTEXTPARTITION: return("CONTEXTPARTITION"); default: throw new ArgumentException("invalid value for enum value", "enumValue"); } }
public AuditContext( string runtimeURI, string deploymentId, string statementName, int agentInstanceId, AuditEnum category, long runtimeTime, string message) { RuntimeURI = runtimeURI; DeploymentId = deploymentId; StatementName = statementName; AgentInstanceId = agentInstanceId; Category = category; Message = message; RuntimeTime = runtimeTime; }
public static string DefaultFormat( string statementName, int partition, AuditEnum category, string message) { var buf = new StringBuilder(); buf.Append("Statement "); buf.Append(statementName); buf.Append(" partition "); buf.Append(partition); buf.Append(" "); buf.Append(category.PrettyPrintText); buf.Append(" "); buf.Append(message); return(buf.ToString()); }
public static void AuditLog(string engineURI, string statementName, AuditEnum category, string message) { if (_auditPattern == null) { string text = AuditContext.DefaultFormat(statementName, category, message); AUDIT_LOG_DESTINATION.Info(text); } else { string result = _auditPattern.Replace("%s", statementName) .Replace("%u", engineURI) .Replace("%c", category.GetValue()) .Replace("%m", message); AUDIT_LOG_DESTINATION.Info(result); } if (_auditCallback != null) { _auditCallback.Invoke(new AuditContext(engineURI, statementName, category, message)); } }
/// <summary> /// Returns text used for the category of the audit log item. /// </summary> /// <param name="enumValue"></param> /// <returns></returns> public static string GetPrettyPrintText(this AuditEnum enumValue) { return(GetValue(enumValue).ToLower()); }