public IActionResult GetPosts(int userId, int blogId, [FromQuery] PostsResourceParameters postsResourceParameters, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId) || !_weblogDataRepository.BlogExists(blogId)) { return(NotFound()); } var postEntities = _weblogDataRepository.GetPosts(blogId, postsResourceParameters); var postsToReturn = _mapper.Map <IEnumerable <PostDto> >(postEntities); Response.Headers.Add(PaginationHeader <Post> .Get(postEntities)); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(Ok(postsToReturn)); } var postsWithLinks = postsToReturn.Select(post => { var links = CreateLinksForPost(Url, userId, blogId, post.PostId); return(new PostDtoWithLinks(post, links)); }); var collectionToReturn = new { posts = postsWithLinks, links = LinksForCollection.Create( CreatePostsResourceUri, new int[] { userId, blogId }, postsResourceParameters, postEntities.HasPrevious, postEntities.HasNext) }; return(Ok(collectionToReturn)); }
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 UserExists() { //-- arrange var user = new User { FirstName = "fname", LastName = "lname", EmailAddress = "email@users", Password = "******" }; _repository.AddUser(user); _repository.Save(); //-- act var actual = _repository.UserExists(1); //-- assert Assert.IsTrue(actual); //-- clean up _repository.DeleteUser(user); _repository.Save(); }