Exemple #1
0
 public static PathValidation <TSource, TResult> RoundMantissa <TSource, TResult>(this PathValidation <TSource, TResult> validation, int length)
 {
     validation.AddValidator(new MantissaLength()
     {
         Length = length
     });
     return(validation);
 }
Exemple #2
0
 public static PathValidation <TSource, TProperty> Greater <TSource, TProperty>(this PathValidation <TSource, TProperty> validation, TProperty minValue)
 {
     validation.AddValidator(new CompareRule.Greater()
     {
         Value = minValue
     });
     return(validation);
 }
Exemple #3
0
 public static PathValidation <TSource, TResult> FixLength <TSource, TResult>(this PathValidation <TSource, TResult> validation, int length)
 {
     validation.AddValidator(new MaxLength()
     {
         Length = length
     });
     return(validation);
 }
Exemple #4
0
 public static PathValidation <TSource, string> LengthBetween <TSource>(this PathValidation <TSource, string> validation, int?minLength, int?maxLength)
 {
     validation.AddValidator(new LengthBetweenRule()
     {
         MinLength = minLength, MaxLength = maxLength
     });
     return(validation);
 }
Exemple #5
0
 public static PathValidation <TSource, TResult> Length <TSource, TResult>(this PathValidation <TSource, TResult> validation, int length) where TResult : IEnumerable
 {
     validation.AddValidator(new LengthBetweenRule()
     {
         MinLength = length, MaxLength = length
     });
     return(validation);
 }
Exemple #6
0
 public static PathValidation <TSource, TResult> Forbidden <TSource, TResult>(this PathValidation <TSource, TResult> validation, params TResult[] items)
 {
     validation.AddValidator(new ForbiddenRule()
     {
         Items = items.Cast <object>().ToList()
     });
     return(validation);
 }
Exemple #7
0
 /// <summary>
 /// Set DateTime.UtcNow if a value earlear that UtcNow
 /// </summary>
 public static PathValidation <TSource, DateTimeOffset> FixEarlierNow <TSource>(this PathValidation <TSource, DateTimeOffset> validation)
 {
     validation.AddValidator(new CompareNowRule.Later()
     {
         FixToNow = true
     });
     return(validation);
 }
Exemple #8
0
 public static PathValidation <TSource, TResult> Available <TSource, TResult>(this PathValidation <TSource, TResult> validation, object[] values)
 {
     validation.AddValidator(new AvailableRule()
     {
         Values = values.ToList()
     });
     return(validation);
 }
Exemple #9
0
 /// <summary>
 /// Set specific value if the field has default(TResult)
 /// </summary>
 public static PathValidation <TSource, TResult> FixEmpty <TSource, TResult>(this PathValidation <TSource, TResult> validation, TResult defaultValue)
 {
     validation.AddValidator(new DefaultRule(typeof(TResult))
     {
         Default = () => defaultValue
     });
     return(validation);
 }
Exemple #10
0
 /// <summary>
 /// Validate that value greate then 1900-01-01
 /// </summary>
 public static PathValidation <TSource, DateTime> NewEra <TSource>(this PathValidation <TSource, DateTime> validation)
 {
     validation.AddValidator(new CompareRule.NotLesser()
     {
         Value = new DateTime(1900, 1, 1)
     });
     return(validation);
 }
Exemple #11
0
 /// <summary>
 /// Correct value to max value if a value greater then the max value
 /// </summary>
 public static PathValidation <TSource, TProperty> FixGreater <TSource, TProperty>(this PathValidation <TSource, TProperty> validation, TProperty maxValue)
 {
     validation.AddValidator(new CompareRule.NotGreater()
     {
         Value = maxValue, FixToValue = true
     });
     return(validation);
 }
Exemple #12
0
 public static PathValidation <TSource, string> FixLatinFileName <TSource>(this PathValidation <TSource, string> validation)
 {
     validation.AddValidator(new FileNameRule()
     {
         LatinOnly = true
     });
     return(validation);
 }
Exemple #13
0
        public static PathValidation <TSource, TResult> Fix <TSource, TResult>(this PathValidation <TSource, TResult> validation, Func <TResult, TResult> fixFunc)
        {
            validation.AddValidator(new FixRule <TResult>()
            {
                FixFunc = fixFunc
            });

            return(validation);
        }
Exemple #14
0
        public static PathValidation <TSource, TResult> Complex <TSource, TResult>(this PathValidation <TSource, TResult> validation,
                                                                                   ValidationRuleFactory <TResult> rules)
        {
            validation.AddValidator(new ComplexRule <TResult>()
            {
                Factory = rules
            });

            return(validation);
        }
Exemple #15
0
        public static PathValidation <TSource, TResult> Check <TSource, TResult>(this PathValidation <TSource, TResult> validation,
                                                                                 Func <ValidationContext, TResult, IEnumerable <ValidationIssue> > ruleFunc)
        {
            validation.AddValidator(new CheckRule <TResult>()
            {
                ValidateFunc = ruleFunc
            });

            return(validation);
        }
Exemple #16
0
        public PathValidation <TSource, TResult> AddToValidation <TSource>(PathValidation <TSource, TProperty> validation)
        {
            var tValidator = new PathValidation <TSource, TResult>(validation.Indexer, validation.Factory);

            tValidator.Id   = validation.Id;
            tValidator.Path = validation.Path;

            tValidator.Validators = validation.Validators;
            tValidator.AddValidator(this);

            return(tValidator);
        }
Exemple #17
0
        public static PathValidation <TSource, TResult> Complex <TSource, TResult>(this PathValidation <TSource, TResult> validation, Action <ValidationRuleFactory <TResult> > prepareRules)
        {
            var factory = validation.Factory.CreateBySettings <TResult>();

            prepareRules(factory);

            validation.AddValidator(new ComplexRule <TResult>()
            {
                Factory = factory
            });

            return(validation);
        }
Exemple #18
0
        public static PathValidation <TSource, TResult> ValidateDto <TSource, TResult>(this PathValidation <TSource, TResult> validation)
        {
            var factory = validation.Factory;

            var dtoComplex = factory.Repository.Extension(typeof(DtoComplex)) as DtoComplex;

            if (dtoComplex == null)
            {
                throw new NotImplementedException($"The '{nameof(ValidateDto)}' method is available for {nameof(DtoComplex)} repository only.");
            }

            validation.AddValidator(new DtoComplexRule <TSource>()
            {
                Complex = dtoComplex,
                Factory = factory
            });

            return(validation);
        }
Exemple #19
0
        public void Validate <TSource>(PathValidation <TSource> validation, Type sourceType)
        {
            if (sourceType == null)
            {
                return;
            }

            var methods = m_invoker.GetValidators(sourceType);

            foreach (var t in methods)
            {
                var tFactory = Activator.CreateInstance(t.FactoryType, validation.Factory.Repository, validation.Factory.OriginalValue);
                t.Invoke(tFactory, this);

                var tRule = Activator.CreateInstance(t.RuleType) as BaseValidationRule;
                ((IComplexAdapterRule)tRule).Init(tFactory, this);

                validation.AddValidator(tRule);
            }
        }
Exemple #20
0
 public static PathValidation <TSource, DateTime> LaterNow <TSource>(this PathValidation <TSource, DateTime> validation)
 {
     validation.AddValidator(new CompareNowRule.Later());
     return(validation);
 }
Exemple #21
0
 public static PathValidation <TSource, DateTimeOffset?> EarlierNow <TSource>(this PathValidation <TSource, DateTimeOffset?> validation)
 {
     validation.AddValidator(new CompareNowRule.Earlier());
     return(validation);
 }
Exemple #22
0
 /// <summary>
 /// Check field on Empty.<para/>
 /// Collection with 0 length are mean Empty too. If the behavier is undesirable then please look for FixEmpty or Trim rules.
 /// They can determine a preferable result for NULL value.<para/>
 /// 0 value of int, double, decimal, bool(false) and etc base types are not Empty values.
 /// </summary>
 public static PathValidation <TSource, TProperty> NotEmpty <TSource, TProperty>(this PathValidation <TSource, TProperty> validation)
 {
     validation.AddValidator(new NotEmptyRule(typeof(TProperty)));
     return(validation);
 }
Exemple #23
0
 /// <summary>
 /// Removed all Empty values from collection field
 /// </summary>
 public static PathValidation <TSource, TResult> SkipEmpty <TSource, TResult>(this PathValidation <TSource, TResult> validation) where TResult : IEnumerable
 {
     validation.AddValidator(new SkipEmptyRule());
     return(validation);
 }
Exemple #24
0
 /// <summary>
 /// Enumeration value will check on 0 size. In the case the value will transform to NULL.
 /// </summary>
 public static PathValidation <TSource, TProperty> Trim <TSource, TProperty>(this PathValidation <TSource, TProperty> validation) where TProperty : IEnumerable
 {
     validation.AddValidator(new TrimRule());
     return(validation);
 }
Exemple #25
0
 public static PathValidation <TSource, string> FixToUpper <TSource>(this PathValidation <TSource, string> validation)
 {
     validation.AddValidator(new ToUpperRule());
     return(validation);
 }
Exemple #26
0
 public static PathValidation <TSource, TEnume> Enum <TSource, TEnume>(this PathValidation <TSource, TEnume> validation)
 {
     validation.AddValidator(new EnumRule());
     return(validation);
 }
Exemple #27
0
 public static PathValidation <TSource, string> Url <TSource>(this PathValidation <TSource, string> validation)
 {
     validation.AddValidator(new UrlRule());
     return(validation);
 }
Exemple #28
0
 public static PathValidation <TSource, DateTimeOffset?> ZeroOffset <TSource>(this PathValidation <TSource, DateTimeOffset?> validation)
 {
     validation.AddValidator(new ZeroOffsetRule());
     return(validation);
 }
Exemple #29
0
 public static PathValidation <TSource, string> Base64 <TSource>(this PathValidation <TSource, string> validation)
 {
     validation.AddValidator(new Base64Rule());
     return(validation);
 }