public async Task <ApiResult <PagedResult <EmpVm> > > GetEmpsPaging(GetEmpPagingRequest request) { { var query = _userManager.Users; if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.UserName.Contains(request.Keyword) || x.PhoneNumber.Contains(request.Keyword) || x.Email.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 EmpVm() { Email = x.Email, PhoneNumber = x.PhoneNumber, Name = x.Name, Id = x.Id, UserName = x.UserName }).ToListAsync(); //4.Select and projection var pagedResult = new PagedResult <EmpVm>() { TotalRecords = totalRow, PageIndex = request.PageIndex, PageSize = request.PageSize, Items = data }; return(new ApiSuccessResult <PagedResult <EmpVm> >(pagedResult)); } }
public async Task <IActionResult> GetAllPaging([FromQuery] GetEmpPagingRequest request) { var products = await _userService.GetEmpsPaging(request); return(Ok(products)); }