public PropertyConstraintValidatorMapping(Type sourceType, IPropertyConstraintValidatorCreator validatorCreator) { if (sourceType == null) { throw new ArgumentNullException("sourceType"); } if (!typeof(PropertyDefinitionConstraint).IsAssignableFrom(sourceType)) { throw new ArgumentException("sourceType must be subtype of PropertyDefinitionConstraint", "sourceType"); } if (validatorCreator == null) { throw new ArgumentNullException("validatorCreator"); } this.SourceType = sourceType; this.ValidatorCreator = validatorCreator; }
public ValidatorInfo[] ValidatorsFromPropertyDefinition(ProviderPropertyDefinition propertyDefinition) { if (propertyDefinition != null) { List <ValidatorInfo> list = new List <ValidatorInfo>(); foreach (PropertyDefinitionConstraint propertyDefinitionConstraint in propertyDefinition.AllConstraints) { IPropertyConstraintValidatorCreator[] validatorCreators = this.GetValidatorCreators(propertyDefinitionConstraint.GetType()); IPropertyConstraintValidatorCreator[] array = validatorCreators; for (int i = 0; i < array.Length; i++) { IPropertyConstraintValidatorCreator propertyConstraintValidatorCreator = array[i]; ValidatorInfo validator = propertyConstraintValidatorCreator.Create(propertyDefinition, propertyDefinitionConstraint); if (validator != null) { if (!list.Any((ValidatorInfo c) => c.Type == validator.Type)) { if (propertyDefinition.IsMultivalued && !(propertyDefinitionConstraint is CollectionPropertyDefinitionConstraint)) { list.Add(new CollectionItemValidatorInfo { ItemValidator = validator }); } else { list.Add(validator); } } } } } return(list.ToArray()); } return(new ValidatorInfo[0]); }
public void RegisterMapping(Type sourceType, IPropertyConstraintValidatorCreator validatorCreator) { this.RegisterMapping(new PropertyConstraintValidatorMapping(sourceType, validatorCreator)); }