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);
        }
Beispiel #2
0
        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);
        }