MyStory.Controllers.PostController.Detail C# (CSharp) Method

Detail() public method

public Detail ( int id, bool errorFromCommentInput = false ) : System.Web.Mvc.ActionResult
id int
errorFromCommentInput bool true, if errors occurred while saving comment
return System.Web.Mvc.ActionResult
        public ActionResult Detail(int id, bool errorFromCommentInput=false)
        {
            //ViewBag.FaceBookAppId = ConfigurationManager.AppSettings["facebook.appid"];
            //ViewBag.FaceBookAppSecret = ConfigurationManager.AppSettings["facebook.appsecret"];

            var post = DbContext.Posts.SingleOrDefault(p => p.Id == id);

            if (post == null)
                return HttpNotFound();

            var md = new Markdown();
            md.SafeMode = true;
            md.ExtraMode = true;
            post.Content = md.Transform(post.Content);

            var postDetailViewModel = Mapper.Map<Post, PostDetailViewModel>(post);
            postDetailViewModel.Tags = post.Tags.ConverTagToStringArray();

            // set Commenter to post comment
            var commentInputData = TempData["commentInputData"] as CommentInput;    // tempdata when modelstateerror occurred in /Comment/Write
            if (errorFromCommentInput && commentInputData != null)
            {
                var modelStateErrors = TempData["commentInputDataErrors"] as Dictionary<string, string>;
                foreach (var item in modelStateErrors)
                {
                    ModelState.AddModelError(item.Key, item.Value);
                }

                postDetailViewModel.CommentInput = commentInputData as CommentInput;
            }
            else
            {
                SetCommenter(postDetailViewModel);
            }

            return View("Detail", postDetailViewModel);
        }

Usage Example

Beispiel #1
0
        public void Detail_Method_Should_Return_Post()
        {
            // Arrange
            FunctionalTestHelper.CreateAutomapperMap();
            FunctionalTestHelper.CreateAccountAndBlog(_dbContext);
            FunctionalTestHelper.CreateOnePost(_dbContext);

            _controller = new PostController();
            _controller.SetFakeControllerContext(true);

            // Act
            var result = _controller.Detail(1) as ViewResult;

            // Assert
            result.ViewName.ShouldEqual("Detail");
            var model = result.Model as PostDetailViewModel;
            model.ShouldNotBeNull();
            model.Title.Contains(FunctionalTestHelper.PostTitle);
            model.Content.Contains(FunctionalTestHelper.PostContent);
        }
All Usage Examples Of MyStory.Controllers.PostController::Detail