public async Task <ActionResult <User[]> > GetAllUsers(int pageNumber = 1, int pageSize = Data.Constants.Paging.DefaultPageSize, string sortBy = "UserId Desc") { EntityCollection <User> dbUsers = null; try { dbUsers = await _repository.GetAllUsersAsync(pageNumber, pageSize, sortBy); } catch (ParseException ex) { return(BadRequest("Request format is invalid: " + ex.Message)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } if (dbUsers == null) { return(NotFound()); } Data.ModelObjectCollection <Data.Models.User> Users = new ModelObjectCollection <Data.Models.User> { TotalCount = dbUsers.TotalCount, PageNumber = dbUsers.PageNumber, PageSize = dbUsers.PageSize, TotalPages = dbUsers.TotalPages, SortBy = dbUsers.SortBy, NextPageNumber = dbUsers.NextPageNumber, PrevPageNumber = dbUsers.PrevPageNumber, NextPageUrl = "", PrevPageUrl = "", Data = _mapper.Map <Data.Models.User []>(dbUsers.Data) }; Users.NextPageUrl = (Users.PageNumber == Users.TotalPages) ? "" : ("api/Users?pageNumber" + Users.NextPageNumber.ToString()) + "&pageSize=" + Users.PageSize.ToString() + "&sortBy=" + Users.SortBy; Users.PrevPageUrl = (Users.PageNumber == 1) ? "" : ("api/Users?pageNumber" + Users.PrevPageNumber.ToString()) + "&pageSize=" + Users.PageSize.ToString() + "&sortBy=" + Users.SortBy; return(Ok(Users)); }