protected override void ValidateRead(List <ValidationError> errors)
        {
            IEnumerable <ValidationError> enumerable = PatternValidator.ValidateAdAttributePatterns(this.Patterns, base.Name, base.UseLegacyRegex);

            if (enumerable != null)
            {
                errors.AddRange(enumerable);
                return;
            }
            base.ValidateRead(errors);
        }
예제 #2
0
 internal static IEnumerable <ValidationError> ValidatePatterns(IEnumerable <Pattern> patterns, string supplementalInfo, bool useLegacyRegex)
 {
     if (patterns == null)
     {
         return(new List <ValidationError>
         {
             new RulePhrase.RulePhraseValidationError(Strings.ArgumentNotSet, supplementalInfo)
         });
     }
     return(PatternValidator.ValidatePatterns(from pattern in patterns
                                              select pattern.Value, supplementalInfo, useLegacyRegex));
 }
예제 #3
0
        internal static IEnumerable <ValidationError> ValidateAdAttributePatterns(IEnumerable <Pattern> patterns, string supplementalInfo, bool useLegacyRegex)
        {
            List <ValidationError> list = new List <ValidationError>();

            if (patterns == null || !patterns.Any <Pattern>())
            {
                list.Add(new RulePhrase.RulePhraseValidationError(Strings.ArgumentNotSet, supplementalInfo));
                return(list);
            }
            foreach (Pattern pattern in patterns)
            {
                int num = pattern.Value.IndexOf(':');
                if (num >= 0)
                {
                    string text = pattern.Value.Substring(0, num).Trim().ToLowerInvariant();
                    if (!TransportUtils.GetDisclaimerMacroLookupTable().ContainsKey(text))
                    {
                        list.Add(new RulePhrase.RulePhraseValidationError(Strings.InvalidMacroName(text), supplementalInfo));
                    }
                    else
                    {
                        string   text2     = pattern.Value.Substring(num + 1);
                        string[] patterns2 = text2.Split(new char[]
                        {
                            ','
                        }, StringSplitOptions.RemoveEmptyEntries);
                        IEnumerable <ValidationError> enumerable = PatternValidator.ValidatePatterns(patterns2, supplementalInfo, useLegacyRegex);
                        if (enumerable != null)
                        {
                            list.AddRange(enumerable);
                        }
                    }
                }
                else
                {
                    list.Add(new RulePhrase.RulePhraseValidationError(Strings.MacroNameNotSpecified(pattern.Value), supplementalInfo));
                }
            }
            if (!list.Any <ValidationError>())
            {
                return(null);
            }
            return(list);
        }