Esempio n. 1
0
        // Token: 0x0600002E RID: 46 RVA: 0x00003998 File Offset: 0x00001B98
        private static LogOperandEvaluator FromConditionOperand(LogConditionOperand operand, CsvTable table, Dictionary <string, LogVariableEvaluator> variables, bool convertToUppercase)
        {
            LogConditionConstant logConditionConstant = operand as LogConditionConstant;

            if (logConditionConstant != null)
            {
                LogConstantEvaluator logConstantEvaluator = new LogConstantEvaluator();
                logConstantEvaluator.Value = logConditionConstant.Value;
                if (convertToUppercase)
                {
                    string text = logConstantEvaluator.Value as string;
                    if (text != null)
                    {
                        logConstantEvaluator.Value           = text.ToUpperInvariant();
                        logConstantEvaluator.AssumeUppercase = true;
                    }
                }
                return(logConstantEvaluator);
            }
            LogConditionVariable logConditionVariable = operand as LogConditionVariable;

            if (logConditionVariable != null)
            {
                if (logConditionVariable.Name == null)
                {
                    throw new LogSearchException(LogSearchErrorCode.LOGSEARCH_E_MISSING_BOUND_VARIABLE_NAME);
                }
                LogVariableEvaluator result;
                if (!variables.TryGetValue(logConditionVariable.Name, out result))
                {
                    throw new LogSearchException(LogSearchErrorCode.LOGSEARCH_E_UNBOUND_QUERY_VARIABLE);
                }
                return(result);
            }
            else
            {
                LogConditionField logConditionField = operand as LogConditionField;
                if (logConditionField == null)
                {
                    throw new LogSearchException(LogSearchErrorCode.LOGSEARCH_E_INVALID_OPERAND_CLASS);
                }
                if (logConditionField.Name == null)
                {
                    throw new LogSearchException(LogSearchErrorCode.LOGSEARCH_E_UNRECOGNIZED_QUERY_FIELD);
                }
                LogFieldEvaluator logFieldEvaluator = new LogFieldEvaluator();
                logFieldEvaluator.Index = table.NameToIndex(logConditionField.Name);
                if (logFieldEvaluator.Index == -1)
                {
                    throw new LogSearchException(LogSearchErrorCode.LOGSEARCH_E_UNRECOGNIZED_QUERY_FIELD);
                }
                return(logFieldEvaluator);
            }
        }
Esempio n. 2
0
        private static LogCondition GetSingleRecipientCondition(string address, string variableName)
        {
            LogConditionField logConditionField = new LogConditionField();

            logConditionField.Name = MessageTrackingSchema.MessageTrackingEvent.Fields[12].Name;
            LogConditionVariable logConditionVariable = new LogConditionVariable();

            logConditionVariable.Name = variableName;
            LogConditionConstant logConditionConstant = new LogConditionConstant();

            logConditionConstant.Value = address;
            LogStringComparisonCondition logStringComparisonCondition = new LogStringComparisonCondition();

            logStringComparisonCondition.Left       = logConditionVariable;
            logStringComparisonCondition.Right      = logConditionConstant;
            logStringComparisonCondition.IgnoreCase = true;
            logStringComparisonCondition.Operator   = LogComparisonOperator.Equals;
            return(new LogForAnyCondition
            {
                Field = logConditionField,
                Variable = logConditionVariable,
                Condition = logStringComparisonCondition
            });
        }
Esempio n. 3
0
        private LogForAnyCondition GetFieldForAnyCondition(MessageTrackingField field, string value, string variableName)
        {
            LogConditionField logConditionField = new LogConditionField();

            logConditionField.Name = base.Table.Fields[(int)field].Name;
            LogConditionConstant logConditionConstant = new LogConditionConstant();

            logConditionConstant.Value = value;
            LogConditionVariable logConditionVariable = new LogConditionVariable();

            logConditionVariable.Name = variableName;
            LogStringComparisonCondition logStringComparisonCondition = new LogStringComparisonCondition();

            logStringComparisonCondition.Left       = logConditionVariable;
            logStringComparisonCondition.Right      = logConditionConstant;
            logStringComparisonCondition.IgnoreCase = true;
            logStringComparisonCondition.Operator   = LogComparisonOperator.Equals;
            return(new LogForAnyCondition
            {
                Field = logConditionField,
                Variable = logConditionVariable,
                Condition = logStringComparisonCondition
            });
        }