public async Task <PagedResult <VoucherVm> > GetVouchersPagings(GetVoucherPagingRequest request) { //1. Select join var query = from p in _context.vouchers select new { p }; //2. filter if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.p.idVoucher.Contains(request.Keyword)); } //3. Paging int totalRow = await query.CountAsync(); var data = await query.Skip((request.PageIndex - 1) *request.PageSize) .Take(request.PageSize) .Select(x => new VoucherVm() { idVoucher = x.p.idVoucher, expiredDate = x.p.expiredDate, isUse = x.p.isUse, price = x.p.price }).ToListAsync(); //4. Select and projection var pagedResult = new PagedResult <VoucherVm>() { TotalRecords = totalRow, PageSize = request.PageSize, PageIndex = request.PageIndex, Items = data }; return(pagedResult); }
public async Task <IActionResult> Index(string keyword, int pageIndex = 1, int pageSize = 10) { var languageId = HttpContext.Session.GetString(SystemConstants.AppSettings.DefaultLanguageId); var sessions = HttpContext.Session.GetString("Token"); var request = new GetVoucherPagingRequest() { Keyword = keyword, PageIndex = pageIndex, PageSize = pageSize, }; var data = await _voucherApiClient.GetVouchersPagings(request); ViewBag.Keyword = keyword; if (TempData["result"] != null) { ViewBag.SuccessMsg = TempData["result"]; } return(View(data)); }
public async Task <IActionResult> GetAllPaging([FromQuery] GetVoucherPagingRequest request) { var Vouchers = await _VoucherService.GetVouchersPagings(request); return(Ok(Vouchers)); }