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); } }
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); } }