public async Task <PagedResult <TypeVm> > GetTypesPagings(GetTypePagingRequest request) { //1. Select join var query = from p in _context.productTypes select new { p }; //2. filter if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.p.typeName.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 TypeVm() { IdType = x.p.idType, Name = x.p.typeName, }).ToListAsync(); //4. Select and projection var pagedResult = new PagedResult <TypeVm>() { TotalRecords = totalRow, PageSize = request.PageSize, PageIndex = request.PageIndex, Items = data }; return(pagedResult); }
public async Task <PagedResult <TypeVm> > GetTypesPagings(GetTypePagingRequest request) { var data = await GetAsync <PagedResult <TypeVm> >( $"/api/types/paging?pageIndex={request.PageIndex}" + $"&pageSize={request.PageSize}" + $"&keyword={request.Keyword}&categoryId={request.TypeId}"); return(data); }
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 GetTypePagingRequest() { Keyword = keyword, PageIndex = pageIndex, PageSize = pageSize, }; var data = await _typeApiClient.GetTypesPagings(request); ViewBag.Keyword = keyword; if (TempData["result"] != null) { ViewBag.SuccessMsg = TempData["result"]; } return(View(data)); }