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