Example #1
0
        public async Task <IActionResult> AddReply(ForumViewModel forumViewModel, int msgId, int chatRoomID)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.GetUserAsync(HttpContext.User);

                var newRply = new Reply()
                {
                    ReplyContent  = forumViewModel.RplyViewModel.MessageBody,
                    UnixTimeStamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
                    Poster        = user.UserName
                };
                // add to reply, msg, and user repos
                await replyRepo.AddReplyToRepo(newRply);

                await messageRepo.AddReplytoMsg(newRply, msgId);

                user.AddToReplyHistory(newRply);
                var result = await userManager.UpdateAsync(user);

                return(RedirectToAction("Forum", new { chatRoomID = chatRoomID }));
            }
            else
            {
                ModelState.AddModelError(nameof(CreateReplyViewModel.MessageBody), "Invalid reply body");
                return(RedirectToAction("Forum", new
                {
                    chatRoomID = chatRoomID,
                    forumViewModel = forumViewModel
                }));
            }
        }