public async Task <IEnumerable <Transaction> > HandleAsync(GetTransactions query)
        {
            var limit = query.Limit ?? 50;

            limit = Math.Max(1, Math.Min(limit, 100));

            return(await _transactionsRepository.GetTransactionsAsync(limit));
        }
Beispiel #2
0
        public async Task <ICollection <TransactionDetailsModel> > GetAllTransactionsAsync()
        {
            var transactions = await _transactionsRepository.GetTransactionsAsync();

            var models = Mapper.Map <ICollection <TransactionDetailsModel> >(transactions);

            return(models);
        }
        public async Task <IEnumerable <Transaction> > GetTransactionsAsync(long?walletId = null)
        {
            var transactions = await _repository.GetTransactionsAsync(
                new Data.Models.Transactions.GetTransactionsRequest()
            {
                Page           = 1,
                RecordsPerPage = 10,
                WalletId       = walletId
            });

            return(_mapper.Map <IEnumerable <Transaction> >(transactions));
        }
Beispiel #4
0
        public async Task <ITransactionsViewModel> GetTransactionsAsync(
            Models.Transactions.GetTransactionsRequest request = null)
        {
            if (request == null)
            {
                request = new Models.Transactions.GetTransactionsRequest();
            }

            var transactions = await _transactionsRepository.GetTransactionsAsync(
                _mapper.Map <Data.Models.Transactions.GetTransactionsRequest>(request));

            return(_mapper.Map <TransactionsViewModel>(transactions));
        }
Beispiel #5
0
        public async Task <IDictionary <string, decimal> > GetTimeBalanceAsync(GetTimeBalanceRequest request)
        {
            var startFromBalance = await _repository
                                   .GetBalanceUntilAsync(request.WalletId, request.SearchRange.From);

            var transactions = await _repository.GetTransactionsAsync(
                new Data.Models.Transactions.GetTransactionsRequest
            {
                WalletId   = request.WalletId,
                DatesRange = new Data.Models.DatesRange(request.SearchRange.From, request.SearchRange.To)
            });

            return(request.SearchRange.GetTimeBalance(startFromBalance, transactions));
        }
        public async Task <decimal> GetCurrentAccountBalanceAsync()
        {
            var allTransactions = await _transactionsRepository.GetTransactionsAsync();

            decimal balance = 0;

            foreach (var t in allTransactions)
            {
                if (t.Type.IsCredit())
                {
                    balance -= t.Amount;
                }
                else
                {
                    balance += t.Amount;
                }
            }

            return(balance);
        }