public async Task <IActionResult> Comment(CommentViewModel cvm) { if (!ModelState.IsValid) { return(RedirectToAction("Post", new { id = cvm.PostId })); } var post = _repo.GetPost(cvm.PostId); if (cvm.MainCommentId == 0) { post.MainComments = post.MainComments ?? new List <MainComment>(); post.MainComments.Add(new MainComment { Message = cvm.Message, Created = DateTime.Now, }); _repo.UpdatePost(post); } else { var comment = new SubComment { MainCommentId = cvm.MainCommentId, Message = cvm.Message, Created = DateTime.Now, }; _repo.AddSubComment(comment); } await _repo.SaveChangesAsync(); return(RedirectToAction("Post", new { id = cvm.PostId })); }