public async Task <IActionResult> Index(TransactionListCriteriaModel criteria, int pageIndex = 0, int pageSize = 20) { var transactions = await _transactionService.ListAsync(pageIndex : pageIndex, pageSize : pageSize, userId : criteria.UserId, transactionType : (TransactionType?)criteria.TransactionType, status : (TransactionStatus?)criteria.Status, dateFrom : criteria.DateFrom, dateTo : criteria.DateTo ); var pagedModel = _mapper.Map <PagedResultModel <TransactionListItemModel> >(transactions); var model = new TransactionListModel() { Criteria = (criteria.UserId.HasValue || criteria.TransactionType.HasValue || criteria.Status.HasValue || criteria.DateFrom.HasValue || criteria.DateTo.HasValue) ? criteria : null, TotalAmount = pagedModel.Items.Any() ? pagedModel.Items.Sum(x => x.Amount) : (decimal?)null, TotalUserAmount = pagedModel.Items.Any() ? pagedModel.Items.Sum(x => x.UserAmount) : (decimal?)null, TotalCompanyAmount = pagedModel.Items.Any() ? pagedModel.Items.Sum(x => x.CompanyAmount) : (decimal?)null, Transactions = pagedModel, Users = _mapper.Map <IEnumerable <SelectListItem> >(await _userRepository.ListAsync(new UserFilterSpecification(onlyActive: true))) }; return(View(model)); }
public IActionResult Index(TransactionListCriteriaModel criteria) { return(RedirectToAction(nameof(Index), criteria)); }