public ActionResult <List <AccountTransaction> > Get(string token) { var response = _accountRepository.GetAllAccounts(token); if (response.StatusCode != System.Net.HttpStatusCode.OK) { return(NotFound(new ApiException(response.StatusCode, response.ErrorMessage))); } var accounts = JsonConvert.DeserializeObject <AccountRootObject>(response.Content); var accountTransactions = new List <AccountTransaction>(); foreach (var account in accounts.results) { var transactionResponse = _transactionRepository.GetAllTransactions(account.account_id, token); if (transactionResponse.StatusCode != System.Net.HttpStatusCode.OK) { return(NotFound(new ApiException(transactionResponse.StatusCode, transactionResponse.ErrorMessage))); } var transactions = JsonConvert.DeserializeObject <TransactionRootObject>(transactionResponse.Content); foreach (var transaction in transactions.results) { var accountTransaction = new AccountTransaction { AccountId = account.account_id, Amount = transaction.amount, Category = transaction.transaction_category, TransactionId = transaction.transaction_id }; var existingTransaction = _transactionRepository.GetAccountTransaction(account.account_id, transaction.transaction_id); //if transaction does not exist, then add to db if (existingTransaction == null) { existingTransaction = _transactionRepository.AddAccountTransaction(accountTransaction); } accountTransactions.Add(existingTransaction); } } return(Ok(accountTransactions)); }