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))); }
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))); }
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))); }
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))); }
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))); }
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))); }
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))); }
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))); }