public async Task <ActionResult> RemoveLike(ulong id) { User user = await _userManager.GetUserAsync(User); if (user != null) { ForumLike like = _context.ForumLikes.FirstOrDefault(l => l.AddedBy == user.Id && l.Post == id); if (like != null) { // There is a like, so we will remove it _context.ForumLikes.Remove(like); await _context.SaveChangesAsync(); User author = await _userManager.FindByIdAsync(like.GivenTo); author.post_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> AddLike(ulong id) { User user = await _userManager.GetUserAsync(User); ForumPost post = _context.ForumPosts.FirstOrDefault(p => p.PostID == id); if (post == null) { return(Json("No post!")); } if (user != null) { if (_context.ForumLikes.Any(l => l.AddedBy == user.Id && l.Post == id)) { // Cancel because there is already a like return(Json("Failure")); } else { string likeid = $"{id}-{user.Id}"; // Success ForumLike like = new ForumLike() { AddedBy = user.Id, LikeID = likeid, Post = id, GivenTo = post.Author }; _context.ForumLikes.Add(like); await _context.SaveChangesAsync(); User author = await _userManager.FindByIdAsync(like.GivenTo); author.post_likes += 1; await _userManager.UpdateAsync(author); return(Json("Success")); } } else { // There is no user (?) return(Json("Failure")); } }
public async Task LikeAsync(string forumPostId, string userId) { var like = await this.likeRepository.All() .FirstOrDefaultAsync(x => x.ForumPostId == forumPostId && x.UserId == userId); if (like == null) { like = new ForumLike { ForumPostId = forumPostId, UserId = userId, }; await this.likeRepository.AddAsync(like); } await this.likeRepository.SaveChangesAsync(); }