コード例 #1
0
ファイル: StringRules.cs プロジェクト: commodus/Validot
        public static IRuleOut <string> LengthBetween(this IRuleIn <string> @this, int min, int max)
        {
            ThrowHelper.BelowZero(min, nameof(min));
            ThrowHelper.BelowZero(max, nameof(max));
            ThrowHelper.InvalidRange(min, nameof(min), max, nameof(max));

            return(@this.RuleTemplate(
                       v =>
            {
                var squashedLength = v.Replace(Environment.NewLine, " ").Length;

                return squashedLength >= min && squashedLength <= max;
            },
                       MessageKey.Texts.LengthBetween,
                       Arg.Number(nameof(min), min),
                       Arg.Number(nameof(max), max)));
        }
コード例 #2
0
        public static IRuleOut <TCollection> CollectionSizeBetween <TCollection, TItem>(this IRuleIn <TCollection> @this, int min, int max)
            where TCollection : IEnumerable <TItem>
        {
            ThrowHelper.BelowZero(min, nameof(min));
            ThrowHelper.BelowZero(max, nameof(max));

            ThrowHelper.InvalidRange(min, nameof(min), max, nameof(max));

            return(@this.RuleTemplate(
                       m =>
            {
                var count = m.Count();

                return count >= min && count <= max;
            },
                       MessageKey.Collections.CollectionSizeBetween,
                       Arg.Number(nameof(min), min),
                       Arg.Number(nameof(max), max)));
        }
コード例 #3
0
ファイル: ShortRules.cs プロジェクト: commodus/Validot
        public static IRuleOut <short?> BetweenOrEqualTo(this IRuleIn <short?> @this, short min, short max)
        {
            ThrowHelper.InvalidRange(min, nameof(min), max, nameof(max));

            return(@this.RuleTemplate(m => m.Value >= min && m.Value <= max, MessageKey.Numbers.BetweenOrEqualTo, Arg.Number(nameof(min), min), Arg.Number(nameof(max), max)));
        }
コード例 #4
0
ファイル: ShortRules.cs プロジェクト: commodus/Validot
        public static IRuleOut <short> Between(this IRuleIn <short> @this, short min, short max)
        {
            ThrowHelper.InvalidRange(min, nameof(min), max, nameof(max));

            return(@this.RuleTemplate(m => m > min && m < max, MessageKey.Numbers.Between, Arg.Number(nameof(min), min), Arg.Number(nameof(max), max)));
        }
コード例 #5
0
        public static IRuleOut <TimeSpan?> BetweenOrEqualTo(this IRuleIn <TimeSpan?> @this, TimeSpan min, TimeSpan max)
        {
            ThrowHelper.InvalidRange(min.Ticks, nameof(min), max.Ticks, nameof(max));

            return(@this.RuleTemplate(m => m.Value >= min && m.Value <= max, MessageKey.TimeSpanType.BetweenOrEqualTo, Arg.Time(nameof(min), min), Arg.Time(nameof(max), max)));
        }
コード例 #6
0
        public static IRuleOut <TimeSpan> Between(this IRuleIn <TimeSpan> @this, TimeSpan min, TimeSpan max)
        {
            ThrowHelper.InvalidRange(min.Ticks, nameof(min), max.Ticks, nameof(max));

            return(@this.RuleTemplate(m => m > min && m < max, MessageKey.TimeSpanType.Between, Arg.Time(nameof(min), min), Arg.Time(nameof(max), max)));
        }
コード例 #7
0
        public static IRuleOut <double?> Between(this IRuleIn <double?> @this, double min, double max)
        {
            ThrowHelper.InvalidRange(min, nameof(min), max, nameof(max));

            return(@this.RuleTemplate(m => m.Value > min && m.Value < max, MessageKey.Numbers.Between, Arg.Number(nameof(min), min), Arg.Number(nameof(max), max)));
        }
コード例 #8
0
ファイル: ByteRules.cs プロジェクト: commodus/Validot
        public static IRuleOut <byte> BetweenOrEqualTo(this IRuleIn <byte> @this, byte min, byte max)
        {
            ThrowHelper.InvalidRange(min, nameof(min), max, nameof(max));

            return(@this.RuleTemplate(m => m >= min && m <= max, MessageKey.Numbers.BetweenOrEqualTo, Arg.Number(nameof(min), min), Arg.Number(nameof(max), max)));
        }