public IValitResult Validate(Model @object, IValitStrategy strategy = null) => ValitRules <Model> .Create() .Ensure(m => m.Value, _ => _.Required().WithMessage("1").Email().WithMessage("2")) .Ensure(m => m.Value2, _ => _.IsPositive()) .For(@object) .Validate();
IValitResult IValitator <TObject> .Validate(TObject @object, IValitStrategy strategy) { var selectedStrategy = strategy ?? new CompleteValitStrategy(); return(_strategyPicker .WithStrategy(selectedStrategy) .For(@object) .Validate()); }
public IValitResult Validate(RateDto dto, IValitStrategy strategy = null) => ValitRules <RateDto> .Create() .WithStrategy(s => s.Complete) .Ensure(r => r.Value, _ => _ .IsPositive() .IsLessThanOrEqualTo(5)) .For(dto) .Validate();
internal ValitRule(IValitRule <TObject, TProperty> previousRule) : this() { var previousRuleAccessor = previousRule.GetAccessor(); _propertySelector = previousRuleAccessor.PropertySelector; _previousRule = previousRule; _messageProvider = previousRuleAccessor.GetMessageProvider(); Strategy = previousRuleAccessor.Strategy; }
public IValitResult Validate(SeatDto dto, IValitStrategy strategy = null) => ValitRules <SeatDto> .Create() .WithStrategy(s => s.Complete) .Ensure(s => s.Row, _ => _ .MaxLength(1)) .Ensure(s => s.Number, _ => _ .IsPositive()) .For(dto) .Validate();
public NestedObjectValitRule( Func <TObject, TProperty> selector, IValitRulesProvider <TProperty> valitRulesProvider, IValitStrategy strategy) { Tags = Enumerable.Empty <string>(); _propertySelector = selector; _valitator = valitRulesProvider.CreateValitator(); _strategy = strategy; }
public IValitResult Validate(GumtreeTopicDto dto, IValitStrategy strategy = null) => ValitRules <GumtreeTopicDto> .Create() .WithStrategy(s => s.Complete) .Ensure(c => c.Title, _ => _ .Required()) .Ensure(c => c.Url, _ => _ .Required()) .For(dto) .Validate();
public NestedObjectValitRule( Expression <Func <TObject, TProperty> > propertySelector, IValitator <TProperty> valitator, IValitStrategy strategy) { Tags = Enumerable.Empty <string>(); _propertySelector = propertySelector; _valitator = valitator; _strategy = strategy; }
public NestedObjectCollectionValitRule( Expression <Func <TObject, IEnumerable <TProperty> > > collectionSelector, IValitator <TProperty> valitator, IValitStrategy strategy) { Tags = Enumerable.Empty <string>(); _collectionSelector = collectionSelector; _valitator = valitator; _strategy = strategy; }
public IValitResult Validate(HallDto dto, IValitStrategy strategy = null) => ValitRules <HallDto> .Create() .WithStrategy(s => s.Complete) .Ensure(h => h.Name, _ => _ .Required()) .Ensure(s => s.Seats, _ => _ .MinItems(1)) .EnsureFor(s => s.Seats, new SeatDtoValidator()) .For(dto) .Validate();
public CollectionValitRule( Expression <Func <TObject, IEnumerable <TProperty> > > collectionSelector, Func <IValitRule <TObject, TProperty>, IValitRule <TObject, TProperty> > ruleFunc, IValitStrategy strategy, IValitMessageProvider messageProvider) { Tags = Enumerable.Empty <string>(); _collectionSelector = collectionSelector; _ruleFunc = ruleFunc; _strategy = strategy; _messageProvider = messageProvider; }
public IValitResult Validate(AddressDto dto, IValitStrategy strategy = null) => ValitRules <AddressDto> .Create() .WithStrategy(s => s.Complete) .Ensure(a => a.City, _ => _ .Required()) .Ensure(a => a.Street, _ => _ .Required()) .Ensure(a => a.ZipCode, _ => _ .Required()) .For(dto) .Validate();
public IValitResult Validate(CinemaDto dto, IValitStrategy strategy = null) => ValitRules <CinemaDto> .Create() .WithStrategy(s => s.Complete) .Ensure(c => c.Id, _ => _ .IsNotEmpty()) .Ensure(c => c.Name, _ => _ .Required()) .Ensure(c => c.Address, _ => _ .Required()) .Ensure(c => c.Address, new AddressDtoValidator()) .Ensure(c => c.Halls, _ => _ .MinItems(1)) .EnsureFor(c => c.Halls, new HallDtoValidator()) .For(dto) .Validate();
public IValitResult Validate(MovieDto dto, IValitStrategy strategy = null) => ValitRules <MovieDto> .Create() .WithStrategy(s => s.Complete) .Ensure(m => m.Id, _ => _ .IsNotEmpty()) .Ensure(m => m.Title, _ => _ .Required()) .Ensure(m => m.AgeRestriction, _ => _ .IsGreaterThanOrEqualTo(3)) .Ensure(m => m.Length, _ => _ .IsPositive()) .Ensure(m => m.Genre, _ => _ .Required()) .For(dto) .Validate();
public IValitResult Validate(SignUp command, IValitStrategy strategy = null) => ValitRules <SignUp> .Create() .WithStrategy(s => s.Complete) .Ensure(c => c.Id, _ => _ .IsNotEmpty()) .Ensure(c => c.Username, _ => _ .Required()) .Ensure(c => c.Email, _ => _ .Required() .Email()) .Ensure(c => c.PhoneNumber, _ => _ .Required() .MinLength(9)) .Ensure(c => c.Password, _ => _ .Required()) .For(command) .Validate();
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); }
IValitRules <TObject> IValitRulesStrategyPicker <TObject> .WithStrategy(IValitStrategy strategy) { _strategy = strategy; return(this); }
internal ValitRule(Func <TObject, TProperty> propertySelector, IValitStrategy strategy, IValitMessageProvider messageProvider) : this() { _propertySelector = propertySelector; _messageProvider = messageProvider; Strategy = strategy; }
private ValitRules(IEnumerable <IValitRule <TObject> > rules) { _rules = rules?.ToList() ?? new List <IValitRule <TObject> >(); _strategy = default(DefaultValitStrategies).Complete; _messageProvider = new EmptyMessageProvider(); }
public IValitResult Validate(Model @object, IValitStrategy strategy = null) => ValitRules <Model> .Create() .Ensure(s => s.Number, s => s.IsGreaterThan(0)) .For(@object) .Validate();