Ejemplo n.º 1
0
        public async Task <PagingUsersModel> GetUsersAsync(PagingUsersParameters pagingUsersParametrs)
        {
            IQueryable <UserDtoModel> pagedUsers = applicationDbContext.UserListView.AsQueryable();

            if (!String.IsNullOrWhiteSpace(pagingUsersParametrs.OrderBy))
            {
                pagedUsers = sortingService.Sort(pagedUsers, pagingUsersParametrs.OrderBy);
            }

            if (!String.IsNullOrWhiteSpace(pagingUsersParametrs.SearchExpression))
            {
                pagedUsers = pagedUsers.Where(user => user.Name.Contains(pagingUsersParametrs.SearchExpression) ||
                                              user.LastName.Contains(pagingUsersParametrs.SearchExpression));
            }
            ;

            var totalUsers = await pagedUsers.CountAsync();

            pagedUsers = pagedUsers.Skip((pagingUsersParametrs.PageNumber - 1) * pagingUsersParametrs.PageSize).Take(pagingUsersParametrs.PageSize);

            pagingModel = new PagingModel(totalUsers, pagingUsersParametrs.PageNumber);

            return(new PagingUsersModel {
                PagesModel = pagingModel, Users = pagedUsers
            });
        }
        public async Task <ActionResult> GetUsersAsync([FromQuery] PagingUsersParameters userParameters)
        {
            var getPaginatedUsers = await userManageService.GetUsersAsync(userParameters);

            if (getPaginatedUsers.Users.Any())
            {
                return(Ok(getPaginatedUsers));
            }

            return(NoContent());
        }