public void UpdateReplyLike(string replyid, string username, string likeordislike) { var replyLike = _context.ReplyLikes.Where(x => x.Username == username && x.ReplyId == replyid).FirstOrDefault(); if (replyLike != null) { switch (likeordislike) { case "like": if (replyLike.Like == false) { replyLike.Like = true; replyLike.Dislike = false; } else { replyLike.Like = false; } break; case "dislike": if (replyLike.Dislike == false) { replyLike.Dislike = true; replyLike.Like = false; } else { replyLike.Dislike = false; } break; } if (replyLike.Like == false && replyLike.Dislike == false) { _context.ReplyLikes.Remove(replyLike); } } else { switch (likeordislike) { case "like": replyLike = new ReplyLike() { ReplyId = replyid, Username = username, Like = true, Dislike = false }; _context.ReplyLikes.Add(replyLike); break; case "dislike": replyLike = new ReplyLike() { ReplyId = replyid, Username = username, Like = false, Dislike = true }; _context.ReplyLikes.Add(replyLike); break; } } Save(); }
public async Task <ReplyLike> Like(Guid userId, Guid replyId) { var isExist = await _likeRepository.GetAll().Where(x => x.UserId == userId && x.ReplyId == replyId && x.IsDeleted == false) .FirstOrDefaultAsync(); if (isExist != null) { throw new Exception("Bu islem zaten yapilmis"); } var model = new ReplyLike { UserId = userId, ReplyId = replyId }; await _likeRepository.AddAsync(model); var user = await _userRepository.GetByIdAsync(userId); var reply = await _replyRepository.GetByIdAsync(replyId); var comment = await _commentRepository.GetByIdAsync(reply.CommentId); var post = await _postRepository.GetByIdAsync(comment.PostId); var community = await _communityRepository.GetByIdAsync(post.CommunityId); if (reply.UserId == user.Id) { return(model); } var notify = new Notification { Content = user.Username + " " + "yanıtını beğendi " + reply.Content, OwnerUserId = reply.UserId, Type = NotifyContentType.ReplyLike, ImgPath = user.ProfileImagePath, TargetName = community.Slug + "/" + post.Slug, TargetId = post.Id }; await _notificationRepository.AddAsync(notify); return(model); }
public void UpdateReplyLike(int replyid, string username, string likeordislike) { //enable user to change his vote var replyLike = _context.ReplyLikes.Where(x => x.Username == username && x.ReplyId == replyid).FirstOrDefault(); if (replyLike != null) { switch (likeordislike) { case "like": if (replyLike.Like == false) { replyLike.Like = true; replyLike.Dislike = false; } else { replyLike.Like = false; } Save(); break; case "dislike": if (replyLike.Dislike == false) { replyLike.Dislike = true; replyLike.Like = false; } else { replyLike.Dislike = false; } Save(); break; } if (replyLike.Like == false && replyLike.Dislike == false) { _context.ReplyLikes.Remove(replyLike); } } else //if user vote at first { switch (likeordislike) { case "like": replyLike = new ReplyLike() { ReplyId = replyid, Username = username, Like = true, Dislike = false }; _context.ReplyLikes.Add(replyLike); Save(); break; case "dislike": replyLike = new ReplyLike() { ReplyId = replyid, Username = username, Like = false, Dislike = true }; _context.ReplyLikes.Add(replyLike); Save(); break; } } var reply = _context.Replies.Where(x => x.Id == replyid).FirstOrDefault(); reply.NetLikeCount = LikeDislikeCount("replylike", replyid) - LikeDislikeCount("replydislike", replyid); Save(); }