IValitResult IValitRule <TObject> .Validate(TObject @object) { @object.ThrowIfNull(); var collection = _collectionSelector(@object); var result = ValitResult.Success; foreach (var property in collection) { Func <TObject, TProperty> selector = _ => property; var nestedObjectValitRule = new NestedObjectValitRule <TObject, TProperty>(selector, _valitRulesProvider, _strategy); result &= nestedObjectValitRule.Validate(@object); if (!result.Succeeded) { _strategy.Fail(default(IValitRule <TObject>), result, out bool cancel); if (cancel) { break; } } } return(result); }
IValitResult IValitRule <TObject> .Validate(TObject @object) { @object.ThrowIfNull(); var collection = _collectionSelector(@object); var result = ValitResult.Success; foreach (var property in collection) { Func <TObject, TProperty> selector = _ => property; var lastEnsureRule = _ruleFunc(new ValitRule <TObject, TProperty>(selector, _messageProvider)); var propertyRules = lastEnsureRule.GetAllEnsureRules(); result &= ValidatePropertyRules(propertyRules, @object); if (!result.Succeeded) { _strategy.Fail(default(IValitRule <TObject>), result, out bool cancel); if (cancel) { break; } } } return(result); }
private IValitResult Validate(IEnumerable <IValitRule <TObject> > rules) { var result = ValitResult.Success; foreach (var rule in rules.ToList()) { result &= rule.Validate(_object); if (!result.Succeeded) { _strategy.Fail(rule, result, out bool cancel); if (cancel) { break; } } } _strategy.Done(result); return(result); }
internal static IValitResult ValidateRules <TObject>(this IEnumerable <IValitRule <TObject> > rules, IValitStrategy strategy, TObject @object) where TObject : class { rules.ThrowIfNull(); var result = ValitResult.Success; foreach (var rule in rules.ToList()) { result &= rule.Validate(@object); if (!result.Succeeded) { strategy.Fail(rule, result, out bool cancel); if (cancel) { break; } } } strategy.Done(result); return(result); }