コード例 #1
0
        public virtual IRuleMessageBuilder <T, TProperty> SetValidate(IFluentRuleBuilder <T, TProperty> builder)
        {
            ParamHelper.CheckParamNull(builder, "builder", "Can't be null");
            var build = builder as IRuleBuilder <T, TProperty>;

            build.ValidateAsyncFunc = async(context, name, error) =>
            {
                var value  = build.ValueGetter(context.ValidateObject);
                var result = Validation.Provider.GetService <IValidateResult>();
                return(await ValidateAsync(result, value, name, error));
            };
            return(build as IRuleMessageBuilder <T, TProperty>);
        }
コード例 #2
0
        public static IFluentRuleBuilder <TProperty, TProperty> Each <T, TProperty>(this IFluentRuleBuilder <T, IEnumerable <TProperty> > builder)
        {
            var checker = builder.Validation.Provider.GetService <EachChecker <T, TProperty> >();

            checker.SetValidate(builder);
            var a = builder.Validation.Provider.GetService <CollectionRuleBuilder <T, TProperty> >();

            a.EachChecker = checker;
            var b = builder.Validation.Provider.GetService <IRuleBuilder <TProperty, TProperty> >();

            b.SetValueGetter(i => i);
            a.ElementRuleBuilderList.Add(b);
            var build = builder as IRuleValueGetterBuilder <T, IEnumerable <TProperty> >;

            build.NextRuleBuilderList.Add(a);
            return(b);
        }
コード例 #3
0
 public static IRuleMessageBuilder <T, string> Regex <T>(this IFluentRuleBuilder <T, string> builder, string pattern, RegexOptions options)
 {
     return(new RegexChecker <T>(pattern, options, builder.Validation).SetValidate(builder));
 }
コード例 #4
0
 public static IRuleMessageBuilder <T, string> Length <T>(this IFluentRuleBuilder <T, string> builder, int min, int max)
 {
     return(new LengthChecker <T>(min, max, builder.Validation).SetValidate(builder));
 }
コード例 #5
0
 public static IRuleMessageBuilder <T, TProperty> NotNull <T, TProperty>(this IFluentRuleBuilder <T, TProperty> builder)
 {
     return(new NotNullChecker <T, TProperty>(builder.Validation).SetValidate(builder));
 }
コード例 #6
0
 public static IRuleMessageBuilder <T, DateTime> LessThanOrEqual <T>(this IFluentRuleBuilder <T, DateTime> builder, DateTime value)
 {
     return(new LessThanOrEqualDateTimeChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #7
0
 public static IRuleMessageBuilder <T, string> NotRegex <T>(this IFluentRuleBuilder <T, string> builder, Regex regex)
 {
     return(new NotRegexChecker <T>(regex, builder.Validation).SetValidate(builder));
 }
コード例 #8
0
 public static IRuleMessageBuilder <T, decimal> LessThanOrEqual <T>(this IFluentRuleBuilder <T, decimal> builder, decimal value)
 {
     return(new LessThanOrEqualDecimalChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #9
0
 public static IRuleMessageBuilder <T, decimal> GreaterThan <T>(this IFluentRuleBuilder <T, decimal> builder, decimal value)
 {
     return(new GreaterThanDecimalChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #10
0
 public static IRuleMessageBuilder <T, float> GreaterThan <T>(this IFluentRuleBuilder <T, float> builder, float value)
 {
     return(new GreaterThanFloatChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #11
0
 public static IRuleMessageBuilder <T, long> Between <T>(this IFluentRuleBuilder <T, long> builder, long min, long max)
 {
     return(new BetweenLongChecker <T>(min, max, builder.Validation).SetValidate(builder));
 }
コード例 #12
0
 public static IRuleMessageBuilder <T, decimal> Between <T>(this IFluentRuleBuilder <T, decimal> builder, decimal min, decimal max)
 {
     return(new BetweenDecimalChecker <T>(min, max, builder.Validation).SetValidate(builder));
 }
コード例 #13
0
 public static IRuleMessageBuilder <T, double> Between <T>(this IFluentRuleBuilder <T, double> builder, double min, double max)
 {
     return(new BetweenDoubleChecker <T>(min, max, builder.Validation).SetValidate(builder));
 }
コード例 #14
0
 public static IRuleMessageBuilder <T, int> Between <T>(this IFluentRuleBuilder <T, int> builder, int min, int max)
 {
     return(new BetweenIntChecker <T>(min, max, builder.Validation).SetValidate(builder));
 }
コード例 #15
0
 public static IRuleMessageBuilder <T, string> NotNullOrWhiteSpace <T>(this IFluentRuleBuilder <T, string> builder)
 {
     return(new NotNullOrWhiteSpaceChecker <T>(builder.Validation).SetValidate(builder));
 }
コード例 #16
0
 public static IRuleMessageBuilder <T, float> LessThanOrEqual <T>(this IFluentRuleBuilder <T, float> builder, float value)
 {
     return(new LessThanOrEqualFloatChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #17
0
 public static IRuleMessageBuilder <T, TProperty?> NotNull <T, TProperty>(this IFluentRuleBuilder <T, TProperty?> builder) where TProperty : struct
 {
     return(new NullableNotNullChecker <T, TProperty>(builder.Validation).SetValidate(builder));
 }
コード例 #18
0
 public static IRuleMessageBuilder <T, long> GreaterThan <T>(this IFluentRuleBuilder <T, long> builder, long value)
 {
     return(new GreaterThanLongChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #19
0
 public static IRuleMessageBuilder <T, long> LessThanOrEqual <T>(this IFluentRuleBuilder <T, long> builder, long value)
 {
     return(new LessThanOrEqualLongChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #20
0
        public static IRuleMessageBuilder <T, TProperty> In <T, TProperty>(this IFluentRuleBuilder <T, TProperty> builder, IEnumerable <TProperty> value)
        {
            var a = new List <string>();

            return(new InListChecker <T, TProperty>(value, builder.Validation).SetValidate(builder));
        }
コード例 #21
0
 public static IRuleMessageBuilder <T, DateTime> GreaterThan <T>(this IFluentRuleBuilder <T, DateTime> builder, DateTime value)
 {
     return(new GreaterThanDateTimeChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #22
0
 public static IRuleMessageBuilder <T, TProperty> CustomCheck <T, TProperty>(this IFluentRuleBuilder <T, TProperty> builder, Func <TProperty, IEnumerable <ValidateFailure> > func)
 {
     return(new CustomChecker <T, TProperty>(func, builder.Validation).SetValidate(builder));
 }
コード例 #23
0
 public static IRuleMessageBuilder <T, TProperty> MustNot <T, TProperty>(this IFluentRuleBuilder <T, TProperty> builder, Func <TProperty, bool> func)
 {
     return(new MustNotChecker <T, TProperty>(func, builder.Validation).SetValidate(builder));
 }
コード例 #24
0
 public static IRuleMessageBuilder <T, TProperty> NotNullOrEmpty <T, TProperty>(this IFluentRuleBuilder <T, TProperty> builder) where TProperty : IEnumerable
 {
     return(new NotNullOrEmptyListChecker <T, TProperty>(builder.Validation).SetValidate(builder));
 }
コード例 #25
0
 public static IRuleMessageBuilder <T, TProperty> Equal <T, TProperty>(this IFluentRuleBuilder <T, TProperty> builder, TProperty value)
 {
     return(new EqualChecker <T, TProperty>(value, builder.Validation).SetValidate(builder));
 }
コード例 #26
0
 public static IRuleMessageBuilder <T, double> GreaterThanOrEqual <T>(this IFluentRuleBuilder <T, double> builder, double value)
 {
     return(new GreaterThanOrEqualDoubleChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #27
0
 public static IRuleMessageBuilder <T, string> LengthLessThanOrEqual <T>(this IFluentRuleBuilder <T, string> builder, int length)
 {
     return(new LengthChecker <T>(-1, length, builder.Validation).SetValidate(builder));
 }
コード例 #28
0
 public static IRuleMessageBuilder <T, int> LessThan <T>(this IFluentRuleBuilder <T, int> builder, int value)
 {
     return(new LessThanIntChecker <T>(value, builder.Validation).SetValidate(builder));
 }
コード例 #29
0
        public override IRuleMessageBuilder <T, IEnumerable <TProperty> > SetValidate(IFluentRuleBuilder <T, IEnumerable <TProperty> > builder)
        {
            ParamHelper.CheckParamNull(builder, "builder", "Can't be null");
            var build = builder as IRuleValueGetterBuilder <T, IEnumerable <TProperty> >;

            build.ValidateAsyncFunc = async(context, name, error) =>
            {
                ValidateRule.ValueName = name;
                var value  = build.ValueGetter(context.ValidateObject);
                var result = Validation.Provider.GetService <IValidateResult>();
                var ct     = Validation.CreateContext(value, context.Option, context.RuleSetList.ToArray());
                return(await ValidateRule.ValidateAsync(ct));
            };
            return(build as IRuleMessageBuilder <T, IEnumerable <TProperty> >);
        }
コード例 #30
0
 public static IRuleMessageBuilder <T, double> LessThan <T>(this IFluentRuleBuilder <T, double> builder, double value)
 {
     return(new LessThanDoubleChecker <T>(value, builder.Validation).SetValidate(builder));
 }