コード例 #1
0
 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();
コード例 #2
0
        IValitResult IValitator <TObject> .Validate(TObject @object, IValitStrategy strategy)
        {
            var selectedStrategy = strategy ?? new CompleteValitStrategy();

            return(_strategyPicker
                   .WithStrategy(selectedStrategy)
                   .For(@object)
                   .Validate());
        }
コード例 #3
0
 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();
コード例 #4
0
        internal ValitRule(IValitRule <TObject, TProperty> previousRule) : this()
        {
            var previousRuleAccessor = previousRule.GetAccessor();

            _propertySelector = previousRuleAccessor.PropertySelector;
            _previousRule     = previousRule;
            _messageProvider  = previousRuleAccessor.GetMessageProvider();
            Strategy          = previousRuleAccessor.Strategy;
        }
コード例 #5
0
 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();
コード例 #6
0
 public NestedObjectValitRule(
     Func <TObject, TProperty> selector,
     IValitRulesProvider <TProperty> valitRulesProvider,
     IValitStrategy strategy)
 {
     Tags = Enumerable.Empty <string>();
     _propertySelector = selector;
     _valitator        = valitRulesProvider.CreateValitator();
     _strategy         = strategy;
 }
コード例 #7
0
 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();
コード例 #8
0
 public NestedObjectValitRule(
     Expression <Func <TObject, TProperty> > propertySelector,
     IValitator <TProperty> valitator,
     IValitStrategy strategy)
 {
     Tags = Enumerable.Empty <string>();
     _propertySelector = propertySelector;
     _valitator        = valitator;
     _strategy         = strategy;
 }
コード例 #9
0
 public NestedObjectCollectionValitRule(
     Expression <Func <TObject, IEnumerable <TProperty> > > collectionSelector,
     IValitator <TProperty> valitator,
     IValitStrategy strategy)
 {
     Tags = Enumerable.Empty <string>();
     _collectionSelector = collectionSelector;
     _valitator          = valitator;
     _strategy           = strategy;
 }
コード例 #10
0
ファイル: HallDtoValidator.cs プロジェクト: rklepacz/Cine
 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();
コード例 #11
0
 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;
 }
コード例 #12
0
ファイル: AddressDtoValidator.cs プロジェクト: rklepacz/Cine
 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();
コード例 #13
0
 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();
コード例 #14
0
 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();
コード例 #15
0
 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();
コード例 #16
0
        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);
        }
コード例 #17
0
ファイル: ValitRules.cs プロジェクト: crazyants/Valit
 IValitRules <TObject> IValitRulesStrategyPicker <TObject> .WithStrategy(IValitStrategy strategy)
 {
     _strategy = strategy;
     return(this);
 }
コード例 #18
0
 internal ValitRule(Func <TObject, TProperty> propertySelector, IValitStrategy strategy, IValitMessageProvider messageProvider) : this()
 {
     _propertySelector = propertySelector;
     _messageProvider  = messageProvider;
     Strategy          = strategy;
 }
コード例 #19
0
ファイル: ValitRules.cs プロジェクト: crazyants/Valit
 private ValitRules(IEnumerable <IValitRule <TObject> > rules)
 {
     _rules           = rules?.ToList() ?? new List <IValitRule <TObject> >();
     _strategy        = default(DefaultValitStrategies).Complete;
     _messageProvider = new EmptyMessageProvider();
 }
コード例 #20
0
 public IValitResult Validate(Model @object, IValitStrategy strategy = null)
 => ValitRules <Model>
 .Create()
 .Ensure(s => s.Number, s => s.IsGreaterThan(0))
 .For(@object)
 .Validate();