GetUsersPaging(GetMaterialsTypePagingRequest bundle) { IQueryable <MaterialsType> query = _context.MaterialsTypes; if (!string.IsNullOrEmpty(bundle.Keyword)) { query = query.Where(c => c.Name.Contains(bundle.Keyword) || c.Code.Contains(bundle.Keyword)); } //3. Paging int totalRow = await query.CountAsync(); query = query.OrderByDescending(c => c.Id); var data = await query.Skip((bundle.PageIndex - 1) *bundle.PageSize) .Take(bundle.PageSize) .Select(i => new MaterialsTypeViewModel() { Id = i.Id, Code = i.Code, Name = i.Name, GroupType = i.GroupType == GroupType.NguyenLieu ? "Nguyên Liệu" : i.GroupType == GroupType.NhienLieu ? "Nhiên Liệu" : "Vật Liệu" }).ToListAsync(); //4. Select and projection var pagedResult = new PagedResult <MaterialsTypeViewModel>() { TotalRecords = totalRow, PageIndex = bundle.PageIndex, PageSize = bundle.PageSize, Items = data }; return(new ApiSuccessResult <PagedResult <MaterialsTypeViewModel> >(pagedResult)); }
GetUsersPaging(GetMaterialsTypePagingRequest bundle) { var url = $"/api/MaterialsType/paging?pageIndex=" + $"{bundle.PageIndex}&pageSize={bundle.PageSize}&keyword={bundle.Keyword}"; var result = await GetListAsync <MaterialsTypeViewModel>(url); return(result); }
public async Task <IActionResult> Index(string keyword, int pageIndex = 1, int pageSize = 1) { var request = new GetMaterialsTypePagingRequest() { Keyword = keyword, PageIndex = pageIndex, PageSize = pageSize }; var data = await _materialsTypeApiClient.GetUsersPaging(request); ViewBag.Keyword = keyword; return(View(data.ResultObj)); }
public async Task <IActionResult> GetAllPaging([FromQuery] GetMaterialsTypePagingRequest request) { var result = await _materialsTypeService.GetUsersPaging(request); return(Ok(result)); }