public static PremiseValidator TextIsCreditCardNumber <S>(this PremiseValidator context) where S : IResponseMessage, new() { return(context.Must <S>(value => { int sum = 0; int mul = 1; int count = (value as string).Count(); for (int i = 0; i < count; i++) { var digit = (value as string).Substring(count - i - 1, count - i); var product = int.Parse(digit) * mul; sum += (product >= 10) ? ((product % 10) + 1) : (product); if (mul == 1) { mul++; } else { mul--; } } if ((sum % 10) == 0) { return (true); } else { return (false); } })); }
public static PremiseValidator TextIsWithin <S>(this PremiseValidator context, int lower, int upper = 99999999) where S : IResponseMessage, new() { return(context.Must <S>(value => { var count = (value as string).Count(); return count >= lower && count <= upper; })); }
public static PremiseValidator TextIsAlphaNumeric <S>(this PremiseValidator context) where S : IResponseMessage, new() { return(context.Must <S>(value => value != null ? (value as string).Replace(" ", "").All(char.IsLetterOrDigit) : false)); }
public static PremiseValidator TextIsNumeric <S>(this PremiseValidator context) where S : IResponseMessage, new() { return(context.Must <S>(value => value == null || (value as string).All(char.IsNumber))); }
public static PremiseValidator TextIsNotEmpty <S>(this PremiseValidator context) where S : IResponseMessage, new() { return(context.Must <S>(value => !string.IsNullOrWhiteSpace(value as string))); }
public static PremiseValidator DateIsInPast <S>(this PremiseValidator context) where S : IResponseMessage, new() { return(context.Must <S>(value => (value as DateTime?) < DateTime.Now)); }