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