Esempio n. 1
0
 public void Validate(ValidationContext context, XDocument rulePackXDocument)
 {
     if (context.DcValidationConfig == null || context.IsPayloadOobRuleCollection)
     {
         return;
     }
     KeywordProcessorsValidator.ValidateKeywordProcessorsPerformance(rulePackXDocument, context.DcValidationConfig.KeywordLength);
 }
Esempio n. 2
0
        private static void ValidateKeywordProcessorsPerformance(XDocument rulePackXDocument, int keywordLengthLimit)
        {
            List <string> list = (from keywordProcessorDefinition in KeywordProcessorsValidator.GetKeywordProcessorsTerms(rulePackXDocument).AsParallel <KeyValuePair <string, List <string> > >()
                                  where keywordProcessorDefinition.Value.Any((string term) => term.Length > keywordLengthLimit)
                                  select keywordProcessorDefinition.Key).ToList <string>();

            if (list.Count > 0)
            {
                LocalizedString message = Strings.ClassificationRuleCollectionKeywordTooLong(keywordLengthLimit, string.Join(Strings.ClassificationRuleCollectionOffendingListSeparator, list));
                throw ClassificationDefinitionUtils.PopulateExceptionSource <ClassificationRuleCollectionKeywordValidationException, List <string> >(new ClassificationRuleCollectionKeywordValidationException(message), list);
            }
        }