コード例 #1
0
        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
            });
        }
コード例 #2
0
 public async Task OnGetAsync(int accountId, int?pageNumber = 1)
 {
     Filter = new TransactionFilterViewModel
     {
         Type       = string.Empty,
         AccountId  = accountId,
         PageNumber = pageNumber ?? 1
     };
     await PrepareModelsAsync(Filter);
 }
コード例 #3
0
        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);
        }