Пример #1
0
        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);
        }
Пример #2
0
        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);
        }