public async Task <IActionResult> Comments([Bind("PostID,CommentContent")] PostCommentsViewModel viewModel) { Post post = await _context.Posts .SingleOrDefaultAsync(m => m.ID == viewModel.PostID); if (post == null) { return(NotFound()); } if (ModelState.IsValid) { Comment comment = new Comment(); comment.Content = viewModel.CommentContent; comment.Username = User.Identity.Name; comment.Published = DateTime.Now; comment.MyPost = post; _context.Comments.Add(comment); await _context.SaveChangesAsync(); viewModel = await GetPostCommentsViewModelFromPost(post); } else { viewModel = await GetPostCommentsViewModelFromPost(post); } return(View(viewModel)); }
private async Task <PostCommentsViewModel> GetPostCommentsViewModelFromPost(Post post) { PostCommentsViewModel viewModel = new PostCommentsViewModel(); viewModel.Post = post; viewModel.Content = post.Content; //Get comments from database List <Comment> comments = await _context.Comments .Where(x => x.MyPost == post).ToListAsync(); viewModel.Comments = comments; return(viewModel); }
// GET: Posts/Comments/5 public async Task <IActionResult> Comments(int?id) { if (id == null) { return(NotFound()); } var post = await _context.Posts .FirstOrDefaultAsync(m => m.ID == id); if (post == null) { return(NotFound()); } PostCommentsViewModel viewModel = await GetPostCommentsViewModelFromPost(post); return(View(viewModel)); }