Exemple #1
0
        public ICardOperator GetInstance(CardFlag flag)
        {
            switch (flag)
            {
            case CardFlag.Visa:
                return(new Visa());

            case CardFlag.Master:
                return(new Master());

            default:
                throw new ArgumentOutOfRangeException(nameof(flag));
            }
        }
Exemple #2
0
        public void AddCredit(int userId, string cardNumber, int verificationCode, string name, CardFlag flag, decimal value)
        {
            _factory.GetInstance(flag).Debit(name, cardNumber, verificationCode, value);
            var wallet = GetOrCreateWallet(userId);

            wallet.AddCredit(value);
            _ctx.SaveChanges();
        }