Example #1
0
        public async Task <ActionResult <BookAuthor[]> > GetBookAuthorsByAuthorIdAsync(int authorId, int pageNumber = 1, int pageSize = Data.Constants.Paging.DefaultPageSize, string sortBy = "AuthorId Desc")
        {
            EntityCollection <BookAuthor> dbBookAuthors = null;

            try
            {
                dbBookAuthors = await _repository.GetBookAuthorsByAuthorIdAsync(authorId, 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));
        }