Ejemplo n.º 1
0
        public virtual decimal GetBalance(GiftCardInfo card)
        {
            Assert.ArgumentNotNull(card, "card");
            var match = Assert.ResultNotNull(FindCard(card), InvalidCardMessage);

            return(match != null ? match.Balance : 0);
        }
Ejemplo n.º 2
0
        public virtual void Credit(GiftCardInfo card, decimal amount)
        {
            Assert.ArgumentNotNull(card, "card");
            Assert.ArgumentNotNull(amount, "amount");
            var match = Assert.ResultNotNull(FindCard(card), InvalidCardMessage);

            match.Balance += amount;
            Repository.Flush();
        }
Ejemplo n.º 3
0
        public virtual void Debit(GiftCardInfo card, decimal amount)
        {
            Assert.ArgumentNotNull(card, "card");
            Assert.ArgumentNotNull(amount, "amount");
            var match = Assert.ResultNotNull(FindCard(card), InvalidCardMessage);

            Assert.IsTrue(match.Balance >= amount, InsufficientBalanceMessage);
            match.Balance -= amount;
            Repository.Flush();
        }
Ejemplo n.º 4
0
        protected virtual GiftCard FindCard(GiftCardInfo card)
        {
            Assert.ArgumentNotNull(card, "card");
            var match = Repository.GetAll().FirstOrDefault(x => x.Number == card.CardNumber);

            // if pin exists, also match on that
            if (match != null && !string.IsNullOrWhiteSpace(match.Pin) && card.Pin != match.Pin)
            {
                return(null);
            }
            return(match);
        }
Ejemplo n.º 5
0
 public virtual bool Validate(GiftCardInfo card)
 {
     Assert.ArgumentNotNull(card, "card");
     return(FindCard(card) != null);
 }