예제 #1
0
파일: AuditEnum.cs 프로젝트: ikvm/nesper
        /// <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);
        }
예제 #2
0
 public AuditContext(String engineURI, String statementName, AuditEnum category, String message)
 {
     _engineURI     = engineURI;
     _statementName = statementName;
     _category      = category;
     _message       = message;
 }
예제 #3
0
        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());
        }
예제 #4
0
파일: AuditEnum.cs 프로젝트: ikvm/nesper
        /// <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");
            }
        }
예제 #5
0
 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;
 }
예제 #6
0
        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());
        }
예제 #7
0
 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));
     }
 }
예제 #8
0
파일: AuditEnum.cs 프로젝트: ikvm/nesper
        /// <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());
        }