public static ConditionMatchResult TestConditionMatches(IConditionsProperties rule, Replacements replacements, out Match lastConditionMatch) { var conditionMatchResult = new ConditionMatchResult(); bool conditionMatches; lastConditionMatch = null; var conditionLogicalGrouping = rule.ConditionLogicalGrouping.HasValue ? rule.ConditionLogicalGrouping.Value : LogicalGrouping.MatchAll; conditionMatchResult.LogincalGrouping = conditionLogicalGrouping; if (conditionLogicalGrouping == LogicalGrouping.MatchAll) { foreach (var condition in rule.Conditions) { var conditionMatched = TestConditionMatch(replacements, condition, lastConditionMatch); var conditionMatch = conditionMatched.Match; var conditionInput = conditionMatched.ConditionInput; conditionMatches = conditionMatch.Success; if (condition.CheckIfInputString != null && condition.CheckIfInputString.Value == CheckIfInputString.DoesNotMatchThePattern) { conditionMatches = !conditionMatches; } if (conditionMatches) { lastConditionMatch = conditionMatch; conditionMatchResult.MatchedConditions.Add(new MatchedCondition(condition, conditionInput)); conditionMatchResult.Matched = true; } } } else { foreach (var condition in rule.Conditions) { var conditionMatched = TestConditionMatch(replacements, condition); var conditionMatch = conditionMatched.Match; var conditionInput = conditionMatched.ConditionInput; conditionMatches = conditionMatch.Success; if (condition.CheckIfInputString != null && condition.CheckIfInputString.Value == CheckIfInputString.DoesNotMatchThePattern) { conditionMatches = !conditionMatches; } if (!conditionMatches) continue; conditionMatchResult.MatchedConditions.Add(new MatchedCondition(condition, conditionInput)); lastConditionMatch = conditionMatch; conditionMatchResult.Matched = true; break; } } return conditionMatchResult; }
public static ConditionMatchResult TestConditionMatches(IConditionsProperties rule, Replacements replacements, out Match lastConditionMatch) { var conditionMatchResult = new ConditionMatchResult(); bool conditionMatches; lastConditionMatch = null; var conditionLogicalGrouping = rule.ConditionLogicalGrouping.HasValue ? rule.ConditionLogicalGrouping.Value : LogicalGrouping.MatchAll; conditionMatchResult.LogincalGrouping = conditionLogicalGrouping; if (conditionLogicalGrouping == LogicalGrouping.MatchAll) { foreach (var condition in rule.Conditions) { var conditionMatched = TestConditionMatch(replacements, condition, lastConditionMatch); var conditionMatch = conditionMatched.Match; var conditionInput = conditionMatched.ConditionInput; conditionMatches = conditionMatch.Success; if (condition.CheckIfInputString != null && condition.CheckIfInputString.Value == CheckIfInputString.DoesNotMatchThePattern) { conditionMatches = !conditionMatches; } if (conditionMatches) { lastConditionMatch = conditionMatch; conditionMatchResult.MatchedConditions.Add(new MatchedCondition(condition, conditionInput)); conditionMatchResult.Matched = true; } else { conditionMatchResult.Matched = false; break; } } } else { foreach (var condition in rule.Conditions) { var conditionMatched = TestConditionMatch(replacements, condition); var conditionMatch = conditionMatched.Match; var conditionInput = conditionMatched.ConditionInput; conditionMatches = conditionMatch.Success; if (condition.CheckIfInputString != null && condition.CheckIfInputString.Value == CheckIfInputString.DoesNotMatchThePattern) { conditionMatches = !conditionMatches; } if (!conditionMatches) { continue; } conditionMatchResult.MatchedConditions.Add(new MatchedCondition(condition, conditionInput)); lastConditionMatch = conditionMatch; conditionMatchResult.Matched = true; break; } } return(conditionMatchResult); }