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