Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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();
        }