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)); } }
private LinkedCollectionResourceWrapperVM <BookVM> CreateBooksLinks(LinkedCollectionResourceWrapperVM <BookVM> booksWrapper) { // link to self booksWrapper.Links.Add(new LinkVM(urlHelper.Link("GetBooks", new { }), "self", "GET")); return(booksWrapper); }