public async Task <IActionResult> LikeTopic(int userId, int topicId) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } //Primary Key userid+postid var topicLikees = await _ratingRepo.GetTopicLikes(topicId); var like = new RatingLike { TopicId = topicId, UserId = userId, Value = 1 }; var dislike = new RatingLike { TopicId = topicId, UserId = userId, Value = -1 }; var likeDeleted = false; topicLikees.ForEach( (i) => { if (i.UserId == userId) { if (i.Value == 1) { _mainRepo.Delete <RatingLike>(like); likeDeleted = true; } else { _mainRepo.Delete <RatingLike>(dislike); } } } ); if (!likeDeleted) { _mainRepo.Add <RatingLike>(like); } try { if (await _mainRepo.SaveAll()) { return(NoContent()); } }catch { return(BadRequest("Failed")); } return(BadRequest("Failed")); }
public async Task <IActionResult> LikeAction(int userId, int activityId) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } //Primary Key userid+postid var activityLikes = await _activityRepo.GetActivityLikes(activityId); var like = new ActivityLike { ActivityId = activityId, UserId = userId, Value = 1 }; var dislike = new ActivityLike { ActivityId = activityId, UserId = userId, Value = -1 }; var likeDeleted = false; if (activityLikes.Any(a => a.UserId == userId)) { if (activityLikes.Any(a => a.UserId == userId && a.Value == 1)) { likeDeleted = true; _mainRepo.Delete <ActivityLike>(like); } else { _mainRepo.Delete <ActivityLike>(dislike); } } if (!likeDeleted) { _mainRepo.Add <ActivityLike>(like); } try { if (await _mainRepo.SaveAll()) { return(NoContent()); } }catch { return(BadRequest("Failed")); } return(BadRequest("Failed")); }
public async Task <IActionResult> LikePost(int userId, int postId) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } //Primary Key userid+postid var postLikees = await _repo.GetPostLikes(postId); var like = new PostLike { UserId = userId, PostId = postId }; if (postLikees.Contains(userId)) { _mainRepo.Delete <PostLike>(like); } else { _mainRepo.Add <PostLike>(like); } try { if (await _mainRepo.SaveAll()) { return(NoContent()); } }catch { return(BadRequest("Failed")); } return(BadRequest("Failed")); }