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