public async Task <IActionResult> GetPositionPaging([FromQuery] GetPositionPagingRequest request) { var positions = await _positionService.GetPositionPaging(request); return(Ok(positions)); }
public async Task <ApiResult <PagedResult <GetPositionPagingViewModel> > > GetPositionPaging(GetPositionPagingRequest request) { var query = from p in _context.Positions select new { p }; if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.p.Name.Contains(request.Keyword)); } int totalRow = await query.CountAsync(); var data = await query.Skip((request.PageIndex - 1) *request.PageSize) .Take(request.PageSize) .Select(x => new GetPositionPagingViewModel() { PosID = x.p.PosID, Name = x.p.Name, Description = x.p.Description }).ToListAsync(); var pagedResult = new PagedResult <GetPositionPagingViewModel>() { TotalRecords = totalRow, PageIndex = request.PageIndex, PageSize = request.PageSize, Items = data }; return(new ApiSuccessResult <PagedResult <GetPositionPagingViewModel> >(pagedResult)); }