Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
 public CreditCard(string number, DateTime expiry, string holder, string code, CardVendor cardVendor)
 {
     Number     = number;
     Expiry     = expiry;
     Holder     = holder;
     Code       = code;
     CardVendor = cardVendor;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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);
        }