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); }
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)); }