/// <summary>
        /// 
        /// </summary>
        /// <param name="type"></param>
        /// <param name="validatedElement"></param>
        /// <returns></returns>
        public virtual CompositeValidatorBuilder GetTypeValidatorBuilder(Type type, IValidatedElement validatedElement)
        {
            if (null == type)
                throw new ArgumentNullException("type");

            return new CompositeValidatorBuilder(validatedElement);
        }
Example #2
0
 public void Setup()
 {
     this.validatedElement =
         new ValidationAttributeValidatedElement(
             StaticReflection.GetPropertyInfo((TypeWithValidationAttributes t)
                                              => t.PropertyWithSingleValidationAttribute));
 }
		public override CompositeValidatorBuilder GetTypeValidatorBuilder(Type type,
			IValidatedElement validatedElement)
		{
			CompositeValidatorBuilder validatorBuilder = base.GetTypeValidatorBuilder(type, validatedElement);
			this.requestedTypes.Add(type.Name, validatorBuilder);
			return validatorBuilder;
		}
        protected Validator CreateValidatorForValidatedElement(IValidatedElement validatedElement,
            CompositeValidatorBuilderCreator validatorBuilderCreator)
        {
            IEnumerator<IValidatorDescriptor> validatorDescriptorsEnumerator = validatedElement.GetValidatorDescriptors().GetEnumerator();

            if ( !validatorDescriptorsEnumerator.MoveNext())
            {
                return null;
            }

            CompositeValidatorBuilder validatorBuilder = validatorBuilderCreator(validatedElement);

            do
            {
                if (validatorDescriptorsEnumerator.Current == null)
                {
                    continue;
                }
                Validator validator = validatorDescriptorsEnumerator.Current.CreateValidator(validatedElement.TargetType,
                    validatedElement.MemberInfo.ReflectedType,
                    this.memberAccessValidatorFactory.MemberValueAccessBuilder);
                validatorBuilder.AddValueValidator(validator);
            }
            while (validatorDescriptorsEnumerator.MoveNext());

            return validatorBuilder.GetValidator();
        }
Example #5
0
 public void Setup()
 {
     this.validatedElement =
         new ValidationAttributeValidatedElement(
             StaticReflection.GetFieldInfo((TypeWithValidationAttributes t)
                                           => t.FieldWithMultipleValidationAttributes));
 }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="validatedElement"></param>
        /// <param name="validatorBuilderCreator"></param>
        /// <returns></returns>
        protected Validator CreateValidatorForValidatedElement(
            IValidatedElement validatedElement,
            CompositeValidatorBuilderCreator validatorBuilderCreator)
        {
            IEnumerator <IValidatorDescriptor> validatorDescriptorsEnumerator =
                validatedElement.GetValidatorDescriptors().GetEnumerator();

            if (!validatorDescriptorsEnumerator.MoveNext())
            {
                return(null);
            }

            CompositeValidatorBuilder validatorBuilder = validatorBuilderCreator(validatedElement);

            do
            {
                Validator validator =
                    validatorDescriptorsEnumerator.Current
                    .CreateValidator(
                        validatedElement.TargetType,
                        validatedElement.MemberInfo.ReflectedType,
                        this.memberAccessValidatorFactory.MemberValueAccessBuilder,
                        this.validatorFactory);
                validatorBuilder.AddValueValidator(validator);
            }while (validatorDescriptorsEnumerator.MoveNext());

            return(validatorBuilder.GetValidator());
        }
		public override ValueAccessValidatorBuilder GetPropertyValueAccessValidatorBuilder(PropertyInfo propertyInfo,
			IValidatedElement validatedElement)
		{
			ValueAccessValidatorBuilder validatorBuilder = base.GetPropertyValueAccessValidatorBuilder(propertyInfo,
				validatedElement);
			this.requestedMembers.Add(propertyInfo.DeclaringType.Name + "." + propertyInfo.Name, validatorBuilder);
			return validatorBuilder;
		}
		public override ValueAccessValidatorBuilder GetMethodValueAccessValidatorBuilder(MethodInfo methodInfo,
			IValidatedElement validatedElement)
		{
			ValueAccessValidatorBuilder validatorBuilder = base.GetMethodValueAccessValidatorBuilder(methodInfo,
				validatedElement);
			this.requestedMembers.Add(methodInfo.DeclaringType.Name + "." + methodInfo.Name, validatorBuilder);
			return validatorBuilder;
		}
Example #9
0
        public override CompositeValidatorBuilder GetTypeValidatorBuilder(Type type,
                                                                          IValidatedElement validatedElement)
        {
            CompositeValidatorBuilder validatorBuilder = base.GetTypeValidatorBuilder(type, validatedElement);

            this.requestedTypes.Add(type.Name, validatorBuilder);
            return(validatorBuilder);
        }
Example #10
0
 public virtual CompositeValidatorBuilder GetTypeValidatorBuilder(Type type, IValidatedElement validatedElement)
 {
     if (type == null)
     {
         throw new ArgumentNullException("type");
     }
     return(new CompositeValidatorBuilder(validatedElement));
 }
        protected CompositeValidatorBuilder GetCompositeValidatorBuilderForType(IValidatedElement validatedElement)
        {
            if (validatedElement == null)
            {
                throw new ArgumentNullException("validatedElement");
            }

            return(_memberAccessValidatorFactory.GetTypeValidatorBuilder(validatedElement.MemberInfo as Type, validatedElement));
        }
Example #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="validatedElement"></param>
        /// <returns></returns>
        protected CompositeValidatorBuilder GetCompositeValidatorBuilderForMethod(IValidatedElement validatedElement)
        {
            if (validatedElement == null)
            {
                throw new ArgumentNullException("validatedElement");
            }

            return(this.memberAccessValidatorFactory.GetMethodValueAccessValidatorBuilder(validatedElement.MemberInfo as MethodInfo,
                                                                                          validatedElement));
        }
 public ValueAccessValidatorBuilder(ValueAccess valueAccess, IValidatedElement validatedElement) : base(validatedElement)
 {
     this.valueAccess = valueAccess;
 }
Example #14
0
 public virtual ValueAccessValidatorBuilder GetPropertyValueAccessValidatorBuilder(PropertyInfo propertyInfo, IValidatedElement validatedElement)
 {
     return(new ValueAccessValidatorBuilder(this.valueAccessBuilder.GetPropertyValueAccess(propertyInfo), validatedElement));
 }
 /// <summary>
 /// Returns an object that will build a ValueAccessValidator for <paramref name="propertyInfo"/> with the supplied 
 /// validation modifiers.
 /// </summary>
 /// <returns>A <see cref="ValueAccessValidatorBuilder"/> for the supplied parameters.</returns>
 /// <exception cref="ArgumentNullException">when <paramref name="propertyInfo"/> is <see langword="null"/>.</exception>
 public virtual ValueAccessValidatorBuilder GetPropertyValueAccessValidatorBuilder(PropertyInfo propertyInfo, IValidatedElement validatedElement)
 {
     return new ValueAccessValidatorBuilder(this.valueAccessBuilder.GetPropertyValueAccess(propertyInfo),
         validatedElement);
 }
Example #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CompositeValidatorBuilder"/> class.
 /// </summary>
 /// <param name="validatedElement">The element for which a composite validator will be created.</param>
 public CompositeValidatorBuilder(IValidatedElement validatedElement)
 {
     this.validatedElement = validatedElement;
     this.valueValidators  = new List <Validator>();
 }
Example #17
0
 protected CompositeValidatorBuilder GetCompositeValidatorBuilderForType(IValidatedElement validatedElement)
 {
     return(this.memberAccessValidatorFactory.GetTypeValidatorBuilder(validatedElement.MemberInfo as Type, validatedElement));
 }
 protected CompositeValidatorBuilder GetCompositeValidatorBuilderForType(IValidatedElement validatedElement)
 {
     return this.memberAccessValidatorFactory.GetTypeValidatorBuilder(validatedElement.MemberInfo as Type,
         validatedElement);
 }
Example #19
0
        public override ValueAccessValidatorBuilder GetPropertyValueAccessValidatorBuilder(PropertyInfo propertyInfo,
                                                                                           IValidatedElement validatedElement)
        {
            ValueAccessValidatorBuilder validatorBuilder = base.GetPropertyValueAccessValidatorBuilder(propertyInfo,
                                                                                                       validatedElement);

            this.requestedMembers.Add(propertyInfo.DeclaringType.Name + "." + propertyInfo.Name, validatorBuilder);
            return(validatorBuilder);
        }
Example #20
0
        /// <summary>
        /// Crée un validator de propriété.
        /// </summary>
        /// <param name="attribute">L'attribut de validation.</param>
        /// <param name="validatedElement">La propriété validée.</param>
        /// <param name="builder">Le constructeur de validation composite.</param>
        /// <param name="mainValidatorFactory">La brique à utiliser lors de la construction des validateurs imbriqués..</param>
        /// <returns>La validateur de propriété.</returns>
        protected Validator CreateValidatorForValidatedElement(IValidatorDescriptor attribute, IValidatedElement validatedElement, CompositeValidatorBuilder builder, ValidatorFactory mainValidatorFactory)
        {
            Validator valueValidator = attribute.CreateValidator(validatedElement.TargetType, validatedElement.MemberInfo.ReflectedType, new MemberAccessValidatorBuilderFactory().MemberValueAccessBuilder, mainValidatorFactory);

            builder.AddValueValidator(valueValidator);

            return(builder.GetValidator());
        }
 /// <summary>
 /// Returns an object that will build a ValueAccessValidator for <paramref name="fieldInfo"/> with the supplied 
 /// validation modifiers.
 /// </summary>
 /// <returns>A <see cref="ValueAccessValidatorBuilder"/> for the supplied parameters.</returns>
 /// <exception cref="ArgumentNullException">when <paramref name="fieldInfo"/> is <see langword="null"/>.</exception>
 public virtual ValueAccessValidatorBuilder GetFieldValueAccessValidatorBuilder(FieldInfo fieldInfo, IValidatedElement validatedElement)
 {
     return new ValueAccessValidatorBuilder(this.valueAccessBuilder.GetFieldValueAccess(fieldInfo),
         validatedElement);
 }
 public CompositeValidatorBuilder(IValidatedElement validatedElement)
 {
     this.validatedElement = validatedElement;
     this.valueValidators = new List<Validator>();
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="validatedElement"></param>
        /// <returns></returns>
        protected CompositeValidatorBuilder GetCompositeValidatorBuilderForType(IValidatedElement validatedElement)
        {
            if (validatedElement == null) throw new ArgumentNullException("validatedElement");

            return this.memberAccessValidatorFactory.GetTypeValidatorBuilder(validatedElement.MemberInfo as Type,
                validatedElement);
        }
 protected CompositeValidatorBuilder GetCompositeValidatorBuilderForMethod(IValidatedElement validatedElement)
 {
     return this.memberAccessValidatorFactory.GetMethodValueAccessValidatorBuilder(validatedElement.MemberInfo as MethodInfo,
         validatedElement);
 }
 protected CompositeValidatorBuilder GetCompositeValidatorBuilderForProperty(IValidatedElement validatedElement)
 {
     return this.memberAccessValidatorFactory.GetPropertyValueAccessValidatorBuilder(validatedElement.MemberInfo as PropertyInfo,
         validatedElement);
 }
Example #26
0
 protected CompositeValidatorBuilder GetCompositeValidatorBuilderForProperty(IValidatedElement validatedElement)
 {
     return(this.memberAccessValidatorFactory.GetPropertyValueAccessValidatorBuilder(validatedElement.MemberInfo as PropertyInfo, validatedElement));
 }
 protected CompositeValidatorBuilder GetValueCompositeValidatorBuilderForProperty(IValidatedElement validatedElement)
 {
     return new CompositeValidatorBuilder(validatedElement);
 }
Example #28
0
 public virtual ValueAccessValidatorBuilder GetFieldValueAccessValidatorBuilder(FieldInfo fieldInfo, IValidatedElement validatedElement)
 {
     return(new ValueAccessValidatorBuilder(this.valueAccessBuilder.GetFieldValueAccess(fieldInfo), validatedElement));
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="valueAccess"></param>
 /// <param name="validatedElement"></param>
 public ValueAccessValidatorBuilder(ValueAccess valueAccess, IValidatedElement validatedElement)
     : base(validatedElement)
 {
     this.valueAccess = valueAccess;
 }
Example #30
0
 public virtual ValueAccessValidatorBuilder GetMethodValueAccessValidatorBuilder(MethodInfo methodInfo, IValidatedElement validatedElement)
 {
     return(new ValueAccessValidatorBuilder(this.valueAccessBuilder.GetMethodValueAccess(methodInfo), validatedElement));
 }
Example #31
0
        public override ValueAccessValidatorBuilder GetMethodValueAccessValidatorBuilder(MethodInfo methodInfo,
                                                                                         IValidatedElement validatedElement)
        {
            ValueAccessValidatorBuilder validatorBuilder = base.GetMethodValueAccessValidatorBuilder(methodInfo,
                                                                                                     validatedElement);

            this.requestedMembers.Add(methodInfo.DeclaringType.Name + "." + methodInfo.Name, validatorBuilder);
            return(validatorBuilder);
        }
 /// <summary>
 /// Returns an object that will build a ValueAccessValidator for <paramref name="methodInfo"/> with the supplied 
 /// validation modifiers.
 /// </summary>
 /// <returns>A <see cref="ValueAccessValidatorBuilder"/> for the supplied parameters.</returns>
 /// <exception cref="ArgumentNullException">when <paramref name="methodInfo"/> is <see langword="null"/>.</exception>
 /// <exception cref="ArgumentException">when <paramref name="methodInfo"/> returns <see langword="void"/>.</exception>
 /// <exception cref="ArgumentException">when <paramref name="methodInfo"/> has parameters.</exception>
 public virtual ValueAccessValidatorBuilder GetMethodValueAccessValidatorBuilder(MethodInfo methodInfo, IValidatedElement validatedElement)
 {
     return new ValueAccessValidatorBuilder(this.valueAccessBuilder.GetMethodValueAccess(methodInfo),
         validatedElement);
 }
Example #33
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="validatedElement"></param>
 /// <returns></returns>
 protected CompositeValidatorBuilder GetValueCompositeValidatorBuilderForProperty(IValidatedElement validatedElement)
 {
     return(new CompositeValidatorBuilder(validatedElement));
 }
Example #34
0
 protected CompositeValidatorBuilder GetCompositeValidatorBuilderForMethod(IValidatedElement validatedElement)
 {
     return(this.memberAccessValidatorFactory.GetMethodValueAccessValidatorBuilder(validatedElement.MemberInfo as MethodInfo, validatedElement));
 }