コード例 #1
0
        public IActionResult GetPost(int userId, int blogId, int postId,
                                     [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType)
        {
            if (!_weblogDataRepository.UserExists(userId) ||
                !_weblogDataRepository.BlogExists(blogId))
            {
                return(NotFound());
            }

            var postFromRepo = _weblogDataRepository.GetPost(postId);

            if (postFromRepo is null)
            {
                return(NotFound());
            }

            var postToReturn = _mapper.Map <PostDto>(postFromRepo);

            var includeLinks = MediaTypes.IncludeLinks(mediaType);

            if (!includeLinks)
            {
                return(Ok(postToReturn));
            }

            var links         = CreateLinksForPost(Url, userId, blogId, postToReturn.PostId);
            var postWithLinks = new PostDtoWithLinks(postToReturn, links);

            return(Ok(postWithLinks));
        }
コード例 #2
0
        public void GetPost()
        {
            //-- arrange
            var post = new Post
            {
                Title       = "title",
                Body        = "body",
                TimeCreated = DateTime.Now
            };

            _repository.AddPost(1, post);
            _repository.Save();

            //-- act
            var actual = _repository.GetPost(1);

            //-- assert
            Assert.AreEqual("title", actual.Title);

            //-- cleanup
            _repository.DeletePost(post);
            _repository.Save();
        }