public CreditCardDetector(String cardNumber)
        {
            if (!ValidationHelper.IsAValidNumber(cardNumber))
                throw new ArgumentException("Invalid number. Just numbers and white spaces are accepted on the string.");

            _cardNumber = cardNumber.RemoveWhiteSpace();
            LoadCard();
        }
Example #2
0
        /// <summary>
        /// Verify if the card number is valid.
        /// </summary>
        /// <param name="creditCardNumber"></param>
        /// <returns></returns>
        public static bool CheckLuhn(String creditCardNumber)
        {
            if (!ValidationHelper.IsAValidNumber(creditCardNumber))
                throw new ArgumentException("Invalid number. Just numbers and white spaces are accepted on the string.");

            var checkSum = creditCardNumber
                .RemoveWhiteSpace()
                .Select(charToInt)
                .Reverse()
                .Select((digit, index) => isEven(index + 1) ? doubleDigit(digit) : digit)
                .Sum();

            return checkSum % 10 == 0;
        }
Example #3
0
        public static String CreateCheckDigit(String number)
        {
            if (!ValidationHelper.IsAValidNumber(number))
                throw new ArgumentException("Invalid number. Just numbers and white spaces are accepted on the string.");

            var digitsSum = number
                .RemoveWhiteSpace()
                .Reverse()
                .Select(charToInt)
                .Select((digit, index) => isEven(index) ? doubleDigit(digit) : digit)
                .Sum();

            digitsSum = digitsSum * 9;

            return digitsSum.ToString().Last().ToString();
        }
        public static bool IsAValidNumber(String number)
        {
            number = number.RemoveWhiteSpace();

            return (number.All(Char.IsNumber) && !String.IsNullOrEmpty(number));
        }