internal static void ValidateReadMatchesPatternsPredicate(Pattern[] patterns, bool useLegacyRegex, string name, List <ValidationError> errors) { if (patterns == null || patterns.Length == 0) { errors.Add(new RulePhrase.RulePhraseValidationError(RulesTasksStrings.ArgumentNotSet, name)); return; } foreach (Pattern pattern in patterns) { string value = pattern.Value; if (!string.IsNullOrEmpty(value)) { int index; if (!Utils.CheckIsUnicodeStringWellFormed(value, out index)) { errors.Add(new RulePhrase.RulePhraseValidationError(RulesTasksStrings.CommentsHaveInvalidChars((int)value[index]), name)); } else { try { Pattern.ValidatePattern(value, useLegacyRegex, false); } catch (ValidationArgumentException ex) { LocalizedString description = ValidationError.CombineErrorDescriptions(new List <ValidationError> { new RulePhrase.RulePhraseValidationError(RulesTasksStrings.InvalidRegex(value), name), new RulePhrase.RulePhraseValidationError(ex.LocalizedString, name) }); errors.Add(new RulePhrase.RulePhraseValidationError(description, name)); } catch (ArgumentException) { errors.Add(new RulePhrase.RulePhraseValidationError(RulesTasksStrings.InvalidRegex(value), name)); } } } } }