예제 #1
0
        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));
            }
        }
예제 #2
0
        public async Task <IActionResult> GetAllPaging([FromQuery] GetEmpPagingRequest request)
        {
            var products = await _userService.GetEmpsPaging(request);

            return(Ok(products));
        }