private IList <BankTransaction> GetAccountTransactions(BankAccount account, DateTime startTime, DateTime endTime) { var transactions = _api.GetTransactions(account, startTime, endTime); var result = new List <BankTransaction>(); foreach (var transaction in transactions) { if (transaction.TransactionType.Equals("FUTURE")) { continue; } var eventDate = new DateTime((int)(transaction.EventDate / 10000), (int)(transaction.EventDate / 100 % 100), (int)(transaction.EventDate % 100)).AddMinutes((int)(transaction.ExpandedEventDate % 100)); result.Add(new BankTransaction { Id = (transaction.ReferenceNumber + Math.Round(transaction.EventAmount) + Math.Round(transaction.CurrentBalance)).ToString(CultureInfo.InvariantCulture), PurchaseDate = eventDate, PaymentDate = eventDate, Description = transaction.ActivityDescription, ProviderName = ProviderName, CurrentBalance = transaction.CurrentBalance, Amount = transaction.EventAmount, IsFee = transaction.ActivityTypeCode == (int)HapoalimActivityType.Fee, Type = transaction.EventActivityTypeCode == 1 ? TransactionType.Income : TransactionType.Expense, SupplierId = transaction.ReferenceNumber.ToString(), }); } return(result); }
public IEnumerable <ITransaction> GetTransactions(long accountId, DateTime startTime, DateTime endTime) { AccountResponse account; _accountsById.TryGetValue(accountId, out account); if (account == null) { throw new ArgumentOutOfRangeException(String.Format("There is no account with {0} account id", accountId)); } var transactionsResult = _hapoalimApi.GetTransactions(account, startTime, endTime); if (!_transactions.ContainsKey(accountId)) { _transactions.Add(accountId, new TransactionsResponse()); } _transactions[accountId] = transactionsResult; var result = new List <ITransaction>(); foreach (var transaction in transactionsResult.Transactions) { result.Add(new BankTransaction { AccountId = accountId, EventId = (long)(transaction.ReferenceNumber + Math.Round(transaction.EventAmount) + Math.Round(transaction.CurrentBalance)), EventDate = new DateTime((int)transaction.EventDate / 10000, (int)transaction.EventDate / 100 % 100, (int)transaction.EventDate % 100).AddMinutes((int)transaction.ExpandedEventDate % 100), EventDescription = transaction.ActivityDescription, CurrentBalance = transaction.CurrentBalance, EventAmount = transaction.EventAmount, Type = transaction.EventActivityTypeCode == 1 ? TransactionType.Income : TransactionType.Expense, SupplierId = transaction.ReferenceNumber.ToString(), }); } return(result); }