Пример #1
0
 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));
                 }
             }
         }
     }
 }