public async Task <IActionResult> AddSub(AddSubViewModel subComment) { string token = Request.Headers["Authorization"]; var userID = JWTExtensions.GetDecodeTokenByProperty(token, "nameid").ToInt(); subComment.CurrentUser = userID; var model = await _commentService.AddSub(subComment); // await _hubContext.Clients.All.SendAsync("ReceiveMessage", model.Item2, "message"); return(Ok(model.Item3)); }
public async Task <Tuple <bool, string> > AddSub(AddSubViewModel subcomment) { try { var item = _context.Comments.Find(subcomment.ParentID); var comment = new Comment { ParentID = subcomment.ParentID, TaskID = subcomment.TaskID, UserID = subcomment.UserID, Content = subcomment.Content, Level = item.Level + 1 }; await _context.AddAsync(comment); await _context.SaveChangesAsync(); await _context.AddAsync(new CommentDetail { CommentID = comment.ID, UserID = comment.UserID, Seen = true }); await _context.SaveChangesAsync(); var comtParent = await _context.Comments.FindAsync(subcomment.ParentID); //Neu tra loi chinh binh luan cua minh thi khong if (subcomment.CurrentUser.Equals(comtParent.UserID)) { return(Tuple.Create(true, string.Empty)); } else { var alert = await AlertReplyComment(comment.TaskID, comment.UserID, comtParent.Content); alert.Item1.Add(comtParent.UserID); var listUsers = alert.Item1.Where(x => x != subcomment.CurrentUser).Distinct().ToList(); await _notificationService.Create(new CreateNotifyParams { AlertType = Data.Enum.AlertType.ReplyComment, Message = alert.Item2, Users = listUsers, TaskID = comment.TaskID, URL = alert.Item3, UserID = comment.UserID }); return(Tuple.Create(true, string.Join(",", listUsers.ToArray()))); } } catch (Exception) { return(Tuple.Create(false, string.Empty)); } }
public async Task <Tuple <bool, string, Comment> > AddSub(AddSubViewModel subcomment) { try { var item = _context.Comments.Find(subcomment.ParentID); var item2 = _context.Comments.Find(subcomment.ID); if (subcomment.ID > 0 && !subcomment.Content.Equals(item2.Content)) { item.Content = subcomment.Content; await _context.SaveChangesAsync(); return(Tuple.Create(true, string.Empty, new Comment())); } var comment = new Comment { TaskID = subcomment.TaskID, TaskCode = subcomment.TaskCode, UserID = subcomment.UserID, Content = subcomment.Content, }; if (item.Level == 1) { comment.ParentID = subcomment.ParentID; comment.Level = item.Level + 1; } if (item.Level >= 2) { comment.Level = 2; comment.ParentID = item.ParentID; } await _context.AddAsync(comment); await _context.SaveChangesAsync(); await _context.AddAsync(new CommentDetail { CommentID = comment.ID, UserID = comment.UserID, Seen = true }); await _context.SaveChangesAsync(); var comtParent = await _context.Comments.FindAsync(subcomment.ParentID); //Neu tra loi chinh binh luan cua minh thi khong if (subcomment.CurrentUser.Equals(comtParent.UserID)) { return(Tuple.Create(true, string.Empty, comment)); } else { var alert = await AlertReplyComment(comment.TaskID, comment.UserID, comtParent.Content, subcomment.ClientRouter); alert.Item1.Add(comtParent.UserID); var listUsers = alert.Item1.Where(x => x != subcomment.CurrentUser).Distinct().ToList(); await _notificationService.Create(new CreateNotifyParams { AlertType = Data.Enum.AlertType.ReplyComment, Message = alert.Item2, Users = listUsers, TaskID = comment.TaskID, URL = alert.Item3, UserID = comment.UserID }); await _hubContext.Clients.All.SendAsync("ReceiveMessage", listUsers, "message"); return(Tuple.Create(true, string.Join(",", listUsers.ToArray()), comment)); } } catch (Exception) { return(Tuple.Create(false, string.Empty, new Comment())); } }