Esempio n. 1
0
        private IEnumerable <KeyValuePair <string, RuleComplexityData> > GetRulePackComplexityData(XDocument rulePackXDocument)
        {
            ExAssert.RetailAssert(rulePackXDocument != null, "The rule pack document instance passed to GetRulePackComplexityData cannot be null!");
            Dictionary <TextProcessorType, TextProcessorGrouping> customTextProcessorGroups = TextProcessorUtils.GetRulePackScopedTextProcessorsGroupedByType(rulePackXDocument).ToDictionary((TextProcessorGrouping textProcessorGroup) => textProcessorGroup.Key);
            Dictionary <string, int> customKeywordProcessorsTermsCount = ComplexityValidator.GetKeywordProcessorTermsCount(rulePackXDocument);
            IEnumerable <XElement>   source = from rulePackElement in rulePackXDocument.Descendants()
                                              where ClassificationDefinitionConstants.MceRuleElementNames.Contains(rulePackElement.Name.LocalName)
                                              select rulePackElement;

            return(from ruleElement in source.AsParallel <XElement>().AsOrdered <XElement>()
                   select new KeyValuePair <string, RuleComplexityData>(ruleElement.Attribute("id").Value, RuleComplexityData.Create(ruleElement, customTextProcessorGroups, customKeywordProcessorsTermsCount, this.cannedOobTextProcessorIdsGroupedByType)));
        }
Esempio n. 2
0
        public void Validate(ValidationContext context, XDocument rulePackXDocument)
        {
            if (context.DcValidationConfig == null || context.IsPayloadOobRuleCollection)
            {
                return;
            }
            DataClassificationConfig dcValidationConfig = context.DcValidationConfig;
            List <KeyValuePair <string, RuleComplexityData> > rulePackComplexityData = this.GetRulePackComplexityData(rulePackXDocument).ToList <KeyValuePair <string, RuleComplexityData> >();

            foreach (IDataClassificationComplexityValidator dataClassificationComplexityValidator in this.dataClassificationComplexityValidators)
            {
                dataClassificationComplexityValidator.Initialize(dcValidationConfig);
                ComplexityValidator.ValidateRuleComplexity(rulePackComplexityData, dataClassificationComplexityValidator);
            }
        }