public static PathValidation <TSource, TResult> RoundMantissa <TSource, TResult>(this PathValidation <TSource, TResult> validation, int length) { validation.AddValidator(new MantissaLength() { Length = length }); return(validation); }
public static PathValidation <TSource, TProperty> Greater <TSource, TProperty>(this PathValidation <TSource, TProperty> validation, TProperty minValue) { validation.AddValidator(new CompareRule.Greater() { Value = minValue }); return(validation); }
public static PathValidation <TSource, TResult> FixLength <TSource, TResult>(this PathValidation <TSource, TResult> validation, int length) { validation.AddValidator(new MaxLength() { Length = length }); return(validation); }
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); }
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); }
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); }
/// <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); }
public static PathValidation <TSource, TResult> Available <TSource, TResult>(this PathValidation <TSource, TResult> validation, object[] values) { validation.AddValidator(new AvailableRule() { Values = values.ToList() }); return(validation); }
/// <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); }
/// <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); }
/// <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); }
public static PathValidation <TSource, string> FixLatinFileName <TSource>(this PathValidation <TSource, string> validation) { validation.AddValidator(new FileNameRule() { LatinOnly = true }); return(validation); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }
public static PathValidation <TSource, DateTime> LaterNow <TSource>(this PathValidation <TSource, DateTime> validation) { validation.AddValidator(new CompareNowRule.Later()); return(validation); }
public static PathValidation <TSource, DateTimeOffset?> EarlierNow <TSource>(this PathValidation <TSource, DateTimeOffset?> validation) { validation.AddValidator(new CompareNowRule.Earlier()); return(validation); }
/// <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); }
/// <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); }
/// <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); }
public static PathValidation <TSource, string> FixToUpper <TSource>(this PathValidation <TSource, string> validation) { validation.AddValidator(new ToUpperRule()); return(validation); }
public static PathValidation <TSource, TEnume> Enum <TSource, TEnume>(this PathValidation <TSource, TEnume> validation) { validation.AddValidator(new EnumRule()); return(validation); }
public static PathValidation <TSource, string> Url <TSource>(this PathValidation <TSource, string> validation) { validation.AddValidator(new UrlRule()); return(validation); }
public static PathValidation <TSource, DateTimeOffset?> ZeroOffset <TSource>(this PathValidation <TSource, DateTimeOffset?> validation) { validation.AddValidator(new ZeroOffsetRule()); return(validation); }
public static PathValidation <TSource, string> Base64 <TSource>(this PathValidation <TSource, string> validation) { validation.AddValidator(new Base64Rule()); return(validation); }