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 #2
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());
        }