public static string RandomCardNumber(CardIssuer cardIssuer, int length) { var rules = ValidationHelper.GetRulesByLength(cardIssuer, length); if (length > 0 && rules.Count == 0) { throw new ArgumentException($"The card number length [{length}] is not valid for the card issuer [{cardIssuer}]."); } string number = ""; var rule = rules.Count == 0 ? CreditCardData.BrandsData[cardIssuer].Rules.First() : rules.First(); length = length > 0 ? length : rule.Lengths.First(); number += rule.Prefixes[RandomNumber.Value.Next(0, rule.Prefixes.Count)]; var numberLength = number.Length; for (int i = 0; i < length - 1 - numberLength; i++) { number += RandomNumber.Value.Next(0, 10); } number += Luhn.CreateCheckDigit(number); return(number); }
public static string RandomCardNumber(CardIssuer brand, int length = 0) { if (length > 0 && !ValidationHelper.IsAValidLength(brand, length)) { throw new ArgumentException(String.Format("{0} is not valid length for card issuer {1}", length, brand)); } string number = ""; var rule = CreditCardData.BrandsData[brand].Rules.First(); length = length > 0 ? length : rule.Lengths.First(); if (brand != CardIssuer.Unknown) { number += rule.Prefixes[RandomNumber.Next(0, rule.Prefixes.Count)]; } var numberLength = number.Length; for (int i = 0; i < length - 1 - numberLength; i++) { number += RandomNumber.Next(0, 10); } number += Luhn.CreateCheckDigit(number); return(number); }
public static string RandomCardNumber(CardIssuer brand) { string number = ""; var rule = CreditCardData.BrandsData[brand].Rules.First(); if (brand != CardIssuer.Unknown) { number += rule.Prefixes[RandomNumber.Next(0, rule.Prefixes.Count)]; } var numberLength = number.Length; for (int i = 0; i < rule.Lengths.First() - 1 - numberLength; i++) { number += RandomNumber.Next(0, 10); } number += Luhn.CreateCheckDigit(number); return(number); }