Beispiel #1
0
        private void BuildRuleNode(RuleSetNode ruleNode, ValidationRulesetData rule)
        {
            SelfNode selfNode = new SelfNode();

            ruleNode.AddNode(selfNode);

            AddValidatorNodes(selfNode, rule.Validators);

            foreach (ValidatedFieldReference fieldReference in rule.Fields)
            {
                FieldNode fieldNode = new FieldNode(fieldReference);
                AddValidatorNodes(fieldNode, fieldReference.Validators);

                ruleNode.AddNode(fieldNode);
            }

            foreach (ValidatedPropertyReference proprtyReference in rule.Properties)
            {
                PropertyNode propertyNode = new PropertyNode(proprtyReference);
                AddValidatorNodes(propertyNode, proprtyReference.Validators);

                ruleNode.AddNode(propertyNode);
            }


            foreach (ValidatedMethodReference methodReference in rule.Methods)
            {
                MethodNode methodNode = new MethodNode(methodReference);
                AddValidatorNodes(methodNode, methodReference.Validators);

                ruleNode.AddNode(methodNode);
            }
        }
Beispiel #2
0
        private void BuildRules(ValidatedTypeReference typeReference, TypeNode typeNode)
        {
            foreach (RuleSetNode ruleNode in typeNode.Hierarchy.FindNodesByType(typeNode, typeof(RuleSetNode)))
            {
                ValidationRulesetData validationRule = new ValidationRulesetData(ruleNode.Name);

                BuildPropertyReferences(validationRule, ruleNode);
                BuildMethodReferences(validationRule, ruleNode);
                BuildFieldReferences(validationRule, ruleNode);

                SelfNode selfNode = ruleNode.Hierarchy.FindNodeByType(ruleNode, typeof(SelfNode)) as SelfNode;
                if (selfNode != null)
                {
                    foreach (ValidatorData validator in FindValidators(selfNode))
                    {
                        validationRule.Validators.Add(validator);
                    }
                }

                typeReference.Rulesets.Add(validationRule);
            }
        }