Exemplo n.º 1
0
        public LinkedCollectionResourceWrapperDTO <AuthorDTO> GetAuthorsCollection(PagingResourceParameters paging)
        {
            var authors         = authorRepository.GetAllAuthors(paging);
            var authorsToReturn = mapper.Map <IEnumerable <AuthorDTO> >(authors);

            authorsToReturn = authorsToReturn.Select(author =>
            {
                author = createLinksStrategy.CreateLinksForAuthorResource(author);
                return(author);
            });
            var authorsWrapper = new LinkedCollectionResourceWrapperDTO <AuthorDTO>(authorsToReturn);

            return(createLinksStrategy.CreateLinksForAuthors(authorsWrapper, paging, authors.HasPrevious, authors.HasNext));
        }
Exemplo n.º 2
0
        public LinkedCollectionResourceWrapperDTO <BookDTO> GetBooks(int authorId, PagingResourceParameters paging)
        {
            var books         = booksRepository.GetAllBooksByAuthor(authorId, paging);
            var booksToReturn = mapper.Map <IEnumerable <BookDTO> >(books);

            booksToReturn = booksToReturn.Select(book =>
            {
                book = createLinksStrategy.CreateLinksForBookResource(book);
                return(book);
            });

            var wrapper = new LinkedCollectionResourceWrapperDTO <BookDTO>(booksToReturn);

            return(createLinksStrategy.CreateLinksForBooks(wrapper, paging, books.HasPrevious, books.HasNext));
        }
Exemplo n.º 3
0
        public LinkedCollectionResourceWrapperDTO <BookDTO> CreateLinksForBooks(
            LinkedCollectionResourceWrapperDTO <BookDTO> booksWrapper,
            PagingResourceParameters pagingResourceParameters,
            bool hasPrevious,
            bool hasNext)
        {
            booksWrapper.Links = new List <LinkDTO>();

            booksWrapper.Links.Add(new LinkDTO(
                                       href: urlHelper.Link("GetBooks", new { }),
                                       rel: "self",
                                       method: "GET"));

            if (hasPrevious)
            {
                booksWrapper.Links.Add(new LinkDTO(
                                           href: urlHelper.Link("GetBooks", new
                {
                    searchQuery = pagingResourceParameters.SearchQuery,
                    pageNumber  = pagingResourceParameters.PageNumber - 1,
                    pageSize    = pagingResourceParameters.PageSize
                }),
                                           rel: "previous",
                                           method: "GET"));
            }

            if (hasNext)
            {
                booksWrapper.Links.Add(new LinkDTO(
                                           href: urlHelper.Link("GetBooks", new
                {
                    searchQuery = pagingResourceParameters.SearchQuery,
                    pageNumber  = pagingResourceParameters.PageNumber + 1,
                    pageSize    = pagingResourceParameters.PageSize
                }),
                                           rel: "next",
                                           method: "GET"));
            }

            return(booksWrapper);
        }