public async Task <IEnumerable <CreditCardDto> > GetAccountsForUser(String userId) { if (!_validationHelper.ValidateUserPermissions(User, userId)) { throw new AuthenticationException(); } var accounts = await _accountRepository.GetAccountsByUserId(userId) ?? new List <CreditCardDoc>(); var needToUpdate = accounts.Any(a => DateTime.Compare(a.UpdatedOn.ToLocalTime().AddHours(28), DateTime.Now) < 0); if (needToUpdate) { try { await UpdateAccounts(userId, accounts); } catch (Exception e) { Console.WriteLine(e); } accounts = await _accountRepository.GetAccountsByUserId(userId) ?? new List <CreditCardDoc>(); } var result = AutoMapper.Mapper.Map <IEnumerable <CreditCardDto> >(accounts); return(result); }
private async Task <IEnumerable <TransactionDoc> > GetCreditTransactionsForUser(String userId, int year, int month) { var creditAccounts = await _creditAccountRepository.GetAccountsByUserId(userId) ?? new List <CreditCardDoc>(); List <TransactionDoc> transactions = new List <TransactionDoc>(); foreach (var creditAccount in creditAccounts) { var trs = GetTransactionsForAccount(creditAccount.Id, year, month).Result; transactions.AddRange(trs); } return(transactions); }