Exemplo n.º 1
0
        public bool ExecuteTest(ChatContext context)
        {
            //convert variables
            var value1 = context.ConvertVariables(Value1);
            var value2 = context.ConvertVariables(Value2);

            //determine case sensitivity
            if (!(CaseSensitiveTest))
            {
                value1 = value1.ToLower();
                value2 = value2.ToLower();
            }

            //perform comparison
            switch (IfType)
            {
            case IfTestType.ContextVariableExists:
                return(context.ContextVariables.ContainsKey(value2));

            case IfTestType.EqualTo:
                return(value1 == value2);

            case IfTestType.NotEqual:
                return(value1 != value2);

            case IfTestType.Contains:
                return(value1.Contains(value2));

            case IfTestType.DoesNotContain:
                return(!(value1.Contains(value2)));

            case IfTestType.LessThan:
            {
                var cValue1 = int.Parse(value1);
                var cValue2 = int.Parse(value2);
                return(cValue1 < cValue2);
            }

            case IfTestType.GreaterThan:
            {
                var cValue1 = int.Parse(value1);
                var cValue2 = int.Parse(value2);
                return(cValue1 > cValue2);
            }

            case IfTestType.GreaterThanOrEqualTo:
            {
                var cValue1 = int.Parse(value1);
                var cValue2 = int.Parse(value2);
                return(cValue1 >= cValue2);
            }

            case IfTestType.LessThanOrEqualTo:
            {
                var cValue1 = int.Parse(value1);
                var cValue2 = int.Parse(value2);
                return(cValue1 <= cValue2);
            }

            default:
                throw new NotImplementedException("If Type '" + IfType.ToString() + "' not implememented.");
            }
        }