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."); } }