Ejemplo n.º 1
0
        public IActionResult GetAuthorBooks(Guid authorId, [FromHeader(Name = "Accept")] string mediaType)
        {
            if (!libraryRepository.AuthorExists(authorId))
            {
                return(NotFound());
            }
            var books   = libraryRepository.GetBooksForAuthor(authorId);
            var booksVM = Mapper.Map <IEnumerable <BookVM> >(books);

            if (mediaType == "application/vnd.marvin.hateoas+json")
            {
                booksVM = booksVM.Select(book => { book = CreatebookLinks(book); return(book); });
                var wrapper = new LinkedCollectionResourceWrapperVM <BookVM>(booksVM);
                return(Ok(CreateBooksLinks(wrapper)));
            }
            else
            {
                return(Ok(booksVM));
            }
        }
Ejemplo n.º 2
0
 private LinkedCollectionResourceWrapperVM <BookVM> CreateBooksLinks(LinkedCollectionResourceWrapperVM <BookVM> booksWrapper)
 {
     // link to self
     booksWrapper.Links.Add(new LinkVM(urlHelper.Link("GetBooks", new { }), "self", "GET"));
     return(booksWrapper);
 }