Пример #1
0
        /// <summary>
        /// Defines a concept validation rule for a specify property.
        /// </summary>
        /// <typeparam name="T">Type to add validation rules for.</typeparam>
        /// <typeparam name="TProperty">The type of property being validated.</typeparam>
        /// <param name="validator">The validator to apply the validation rule to.</param>
        /// <param name="expression">The expression representing the property to validate.</param>
        /// <returns>an IRuleBuilder instance on which validators can be defined.</returns>
        public static IRuleBuilderInitial <T, TProperty> AddRuleForConcept <T, TProperty>(
            this AbstractValidator <T> validator,
            Expression <Func <T, TProperty> > expression)
        {
            var rule = PropertyRule.Create(expression, () => validator.CascadeMode);

            rule.PropertyName = FromExpression(expression) ?? typeof(TProperty).Name;
            validator.AddRule(rule);
            return(new RuleBuilder <T, TProperty>(rule));
        }
        /// <summary>
        /// Defines a concept validation rule for a specify property.
        /// </summary>
        /// <typeparam name="T">Type to add validation rules for</typeparam>
        /// <typeparam name="TProperty">The type of property being validated</typeparam>
        /// <param name="validator">The validator to apply the validation rule to.</param>
        /// <param name="expression">The expression representing the property to validate</param>
        /// <returns>an IRuleBuilder instance on which validators can be defined</returns>
        public static IRuleBuilderInitial <T, TProperty> AddRuleForConcept <T, TProperty>(
            this AbstractValidator <T> validator,
            Expression <Func <T, TProperty> > expression)
        {
            if (expression == null)
            {
                throw new ArgumentException("Cannot pass null to RuleForConcept");
            }
            var rule = PropertyRule.Create(expression, () => validator.CascadeMode);

            rule.PropertyName = FromExpression(expression) ?? typeof(TProperty).Name;
            validator.AddRule(rule);
            return(new RuleBuilder <T, TProperty>(rule));
        }