public Card Create( CardVendor cardVendor, string cardholderFirstName, string cardholderLastName, DateTime expirationDateTimeUtc) { Argument.NotNull(cardVendor, "cardVendor"); Argument.NotEmpty(cardholderFirstName, "cardholderFirstName"); Argument.NotNull(cardholderLastName, "cardholderLastName"); Argument.EnsureIsValid <CardExpirationDateValidator, DateTime>(expirationDateTimeUtc, "expirationDateTimeUtc"); if (!_prefixes.ContainsKey(cardVendor.Id)) { var message = string.Format("Card vendor [{0}] is not supported.", cardVendor.Id); throw new NotSupportedException(message); } string cardNo; while (true) { cardNo = GenerateCardNo(cardVendor); var number = cardNo; var query = DbQuery.For <Card>().FilterBy(x => x.CardNo == number); var existingCard = _cardRepository.Query(query).FirstOrDefault(); if (existingCard == null) { break; } } var card = new Card(cardNo, cardVendor, cardholderFirstName.ToUpper(), cardholderLastName.ToUpper(), expirationDateTimeUtc); return(card); }
public Card Create( CardVendor cardVendor, string cardholderFirstName, string cardholderLastName, DateTime expirationDateTimeUtc) { Argument.NotNull(cardVendor, "cardVendor"); Argument.NotEmpty(cardholderFirstName, "cardholderFirstName"); Argument.NotNull(cardholderLastName, "cardholderLastName"); Argument.EnsureIsValid<CardExpirationDateValidator, DateTime>(expirationDateTimeUtc, "expirationDateTimeUtc"); if (!_prefixes.ContainsKey(cardVendor.Id)) { var message = string.Format("Card vendor [{0}] is not supported.", cardVendor.Id); throw new NotSupportedException(message); } string cardNo; while (true) { cardNo = GenerateCardNo(cardVendor); var number = cardNo; var query = DbQuery.For<Card>().FilterBy(x => x.CardNo == number); var existingCard = _cardRepository.Query(query).FirstOrDefault(); if (existingCard == null) { break; } } var card = new Card(cardNo, cardVendor, cardholderFirstName.ToUpper(), cardholderLastName.ToUpper(), expirationDateTimeUtc); return card; }
public CreditCard(string number, DateTime expiry, string holder, string code, CardVendor cardVendor) { Number = number; Expiry = expiry; Holder = holder; Code = code; CardVendor = cardVendor; }
private string GenerateCardNo(CardVendor cardVendor) { var cardNo = string.Format("{0}{1}{2}{3}{4}", _prefixes[cardVendor.Id](), VabankCardCode, Randomizer.NumericString(2), EmitentCode, Randomizer.NumericString(8)); return cardNo; }
private string GenerateCardNo(CardVendor cardVendor) { var cardNo = string.Format("{0}{1}{2}{3}{4}", _prefixes[cardVendor.Id](), VabankCardCode, Randomizer.NumericString(2), EmitentCode, Randomizer.NumericString(8)); return(cardNo); }
public UserCard Create( CardAccount cardAccount, CardVendor cardVendor, User cardOwner, string cardholderFirstName, string cardholderLastName, DateTime expirationDateUtc) { Argument.NotNull(cardAccount, "cardAccount"); Argument.NotNull(cardVendor, "cardVendor"); Argument.NotNull(cardOwner, "cardOwner"); var card = _cardFactory.Create( cardVendor, cardholderFirstName, cardholderLastName, expirationDateUtc); var settings = new CardSettings(card.Id, _cardLimitsFactory.CreateDefault(cardAccount.Currency)); var userCard = new UserCard(cardAccount, card, cardOwner, settings); return userCard; }
public UserCard Create( CardAccount cardAccount, CardVendor cardVendor, User cardOwner, string cardholderFirstName, string cardholderLastName, DateTime expirationDateUtc) { Argument.NotNull(cardAccount, "cardAccount"); Argument.NotNull(cardVendor, "cardVendor"); Argument.NotNull(cardOwner, "cardOwner"); var card = _cardFactory.Create( cardVendor, cardholderFirstName, cardholderLastName, expirationDateUtc); var settings = new CardSettings(card.Id, _cardLimitsFactory.CreateDefault(cardAccount.Currency)); var userCard = new UserCard(cardAccount, card, cardOwner, settings); return(userCard); }