public IActionResult GetBlogs(int userId, [FromQuery] BlogsResourceParameters blogsResourceParameters, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId)) { return(NotFound()); } var blogEntities = _weblogDataRepository.GetBlogs(userId, blogsResourceParameters); var blogsToReturn = _mapper.Map <IEnumerable <BlogDto> >(blogEntities); Response.Headers.Add(PaginationHeader <Blog> .Get(blogEntities)); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(Ok(blogsToReturn)); } var blogsWithLinks = blogsToReturn.Select(blog => { var links = CreateLinksForBlog(Url, userId, blog.BlogId); return(new BlogDtoWithLinks(blog, links)); }); var collectionToReturn = new { blogs = blogsWithLinks, links = LinksForCollection.Create( CreateBlogsResourceUri, new int[] { userId }, blogsResourceParameters, blogEntities.HasPrevious, blogEntities.HasNext) }; return(Ok(collectionToReturn)); }
public void AddBlog() { //-- arrange var countBeforeAdd = _repository.GetBlogs(_resourceParameters).Count(); var blog = new Blog { Title = "title", Excerpt = "excerpt" }; //-- act _repository.AddBlog(1, blog); _repository.Save(); var actual = _repository.GetBlogs(_resourceParameters).Count(); //-- assert Assert.AreEqual(countBeforeAdd + 1, actual); //-- clean up _repository.DeleteBlog(blog); _repository.Save(); }