Beispiel #1
0
        public async Task <CreditCard> Get(string id)
        {
            var cachedCreditCard = await cacheRepository.GetAsync(id);

            if (cachedCreditCard == null)
            {
                var creditCard = await policy.ExecuteAsync(() => creditCardRepository.GetCreditCard(id));

                await cacheRepository.SetAsync(id, creditCard);

                GenerateAuditEvent(id, 1, "Return credit card from database");
                return(creditCard);
            }
            GenerateAuditEvent(id, 2, "Return credit card from cache");
            return(cachedCreditCard as CreditCard);
        }
Beispiel #2
0
        public async Task <CreditCardDTO> GetCreditCard(int creditCardId)
        {
            var creditCard = await _creditCardRepository.GetCreditCard(creditCardId);

            if (creditCard == null)
            {
                throw new Exception("Credit card number wasn't found");
            }
            var creditCardNumber = Cipher.Decrypt(creditCard.CreditCardNumber, CipherConstans.CreditCardKey);

            return(new CreditCardDTO
            {
                CreditCardId = creditCard.CreditCardId,
                CreditCardNumber = creditCardNumber,
                isValid = creditCard.isValid,
                Pin = creditCard.CreditCardPin,
                Balance = creditCard.Balance
            });
        }
 public async Task <CreditCard> Get(string id)
 {
     return(await creditCardRepository.GetCreditCard(id));
 }