private static CardAccount GenerateCardAccount(HashSet <long> registeredCardNumbers, IList <int> cardHolderIds, IRandomNumberProvider numberProvider, IRandomDataProvider randomDataProvider) { string cardNumber = string.Empty; long number = new long(); while (number == 0 || registeredCardNumbers.Contains(number)) { number = (long)numberProvider.GetIntInRange(0, 1999999999) * (long)numberProvider.GetIntInRange(1, 5); } registeredCardNumbers.Add(number); cardNumber = number.ToString().PadLeft(10, '0'); var holderId = cardHolderIds[numberProvider.GetIntUpTo(cardHolderIds.Count - 1)]; var pin = randomDataProvider.GetStringExact(4, RandomDataType.Numerics); var cash = (decimal)numberProvider.GetDoubleInRange(100.00D, 10000.00D); CardAccount currentCardAccount = new CardAccount() { CardNumber = cardNumber, CardHolderId = holderId, CardPin = pin, CardCash = cash }; return(currentCardAccount); }
private static CardAccount GenerateCardAccount(HashSet<long> registeredCardNumbers, IList<int> cardHolderIds, IRandomNumberProvider numberProvider, IRandomDataProvider randomDataProvider) { string cardNumber = string.Empty; long number = new long(); while (number == 0 || registeredCardNumbers.Contains(number)) { number = (long)numberProvider.GetIntInRange(0, 1999999999) * (long)numberProvider.GetIntInRange(1, 5); } registeredCardNumbers.Add(number); cardNumber = number.ToString().PadLeft(10, '0'); var holderId = cardHolderIds[numberProvider.GetIntUpTo(cardHolderIds.Count - 1)]; var pin = randomDataProvider.GetStringExact(4, RandomDataType.Numerics); var cash = (decimal)numberProvider.GetDoubleInRange(100.00D, 10000.00D); CardAccount currentCardAccount = new CardAccount() { CardNumber = cardNumber, CardHolderId = holderId, CardPin = pin, CardCash = cash }; return currentCardAccount; }