public async Task <ActionResult> RemoveCommentLike(ulong id) { User user = await _userManager.GetUserAsync(User); if (user != null) { ForumCommentLike like = _context.ForumCommentLikes.FirstOrDefault(l => l.UserID == user.Id && l.CommentID == id); if (like != null) { // There is a like, so we will remove it _context.ForumCommentLikes.Remove(like); await _context.SaveChangesAsync(); User author = await _userManager.FindByIdAsync(like.GivenTo); author.comment_likes -= 1; await _userManager.UpdateAsync(author); return(Json("Success")); } else { // No like exists return(Json("Failure")); } } else { // There is no user (?) return(Json("Failure")); } }
public async Task <ActionResult> AddCommentLike(ulong id) { User user = await _userManager.GetUserAsync(User); ForumComment comment = _context.ForumComments.FirstOrDefault(c => c.CommentID == id); if (comment == null) { return(Json("Comment not found!")); } if (user != null) { if (_context.ForumCommentLikes.Any(l => l.UserID == user.Id && l.CommentID == id)) { // Cancel because there is already a like return(Json("Failure")); } else { string likeid = $"{id}-{user.Id}"; // Success ForumCommentLike like = new ForumCommentLike() { UserID = user.Id, LikeID = likeid, CommentID = id, GivenTo = comment.UserID }; _context.ForumCommentLikes.Add(like); await _context.SaveChangesAsync(); User author = await _userManager.FindByIdAsync(like.GivenTo); author.comment_likes += 1; await _userManager.UpdateAsync(author); return(Json("Success")); } } else { // There is no user (?) return(Json("Failure")); } }