public NestedObjectCollectionValitRule( Expression <Func <TObject, IEnumerable <TProperty> > > collectionSelector, IValitator <TProperty> valitator, IValitStrategy strategy) { Tags = Enumerable.Empty <string>(); _collectionSelector = collectionSelector; _valitator = valitator; _strategy = strategy; }
public NestedObjectValitRule( Expression <Func <TObject, TProperty> > propertySelector, IValitator <TProperty> valitator, IValitStrategy strategy) { Tags = Enumerable.Empty <string>(); _propertySelector = propertySelector; _valitator = valitator; _strategy = strategy; }
public NestedObjectValitRule( Func <TObject, TProperty> selector, IValitRulesProvider <TProperty> valitRulesProvider, IValitStrategy strategy) { Tags = Enumerable.Empty <string>(); _propertySelector = selector; _valitator = valitRulesProvider.CreateValitator(); _strategy = strategy; }
IValitRules<TObject> IValitRules<TObject>.EnsureFor<TProperty>(Expression<Func<TObject, IEnumerable<TProperty>>> selector, IValitator<TProperty> valitator) { selector.ThrowIfNull(); valitator.ThrowIfNull(); var collectionValitRule = new NestedObjectCollectionValitRule<TObject, TProperty>(selector, valitator, _strategy); _rules.Add(collectionValitRule); return this; }
IValitRules<TObject> IValitRules<TObject>.Ensure<TProperty>(Expression<Func<TObject, TProperty>> selector, IValitator<TProperty> valitator) { selector.ThrowIfNull(); valitator.ThrowIfNull(); var nestedValitRule = new NestedObjectValitRule<TObject, TProperty>(selector, valitator, _strategy); _rules.Add(nestedValitRule); return this; }