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)); }
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)); }
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)); }
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); }