private async Task PrepareModelsAsync(TransactionFilterViewModel filterViewModel) { Account = await _accountQueries.GetById(filterViewModel.AccountId); Transactions = await _transactionQueries.GetAllTransactions(Filter.ToFilter(), new PaginationArgs { PageNumber = filterViewModel.PageNumber, ItemsPerPage = _userSettings.ItemsPerPage }); }
public async Task OnGetAsync(int accountId, int?pageNumber = 1) { Filter = new TransactionFilterViewModel { Type = string.Empty, AccountId = accountId, PageNumber = pageNumber ?? 1 }; await PrepareModelsAsync(Filter); }
public PagingOutputViewModel <TransactionListViewModel> SearchTransaction(TransactionFilterViewModel filter) { var output = new PagingOutputViewModel <TransactionListViewModel> { ItemsPerPage = 15 }; var repository = _unitOfWork.TransactionRepository.All().Include(s => s.Receiver).ThenInclude(s => s.Customer); if (!string.IsNullOrEmpty(filter.CustomerNo)) { repository.Where(s => s.Receiver.Customer.CustomerCode == filter.CustomerNo); } if (!string.IsNullOrEmpty(filter.CustomerPhone)) { repository.Where(s => s.Receiver.Customer.Phone == filter.CustomerPhone); } if (!string.IsNullOrEmpty(filter.TransactionNo)) { repository.Where(s => s.TransactionNo == filter.TransactionNo); } if (!string.IsNullOrEmpty(filter.CreateDateStart.ToString())) { repository.Where(s => DateTimeOffset.Compare(s.CreatedOn.Value, filter.CreateDateStart.Value) >= 0); } if (!string.IsNullOrEmpty(filter.CreateDateEnd.ToString())) { repository.Where(s => DateTimeOffset.Compare(s.CreatedOn.Value, filter.CreateDateEnd.Value) <= 0); } var data = repository.Select(trans => new TransactionListViewModel { TransactionId = trans.TransactionId, TransactionNo = trans.TransactionNo, CustomerCode = trans.Receiver.Customer.CustomerCode, CustomerName = trans.Receiver.Customer.FullName, ReceiverName = trans.Receiver.ReceiverName, CurrencyName = ((Currency)trans.CurrencyId).ToString(), Amount = trans.Amount, CreatedOn = trans.CreatedOn }); data = data.Take(output.ItemsPerPage); // Enumerate the data output.TotalItems = repository.Count(); output.Data = data.ToList(); return(output); }