public async Task <ActionResult> AddLike(string username) { var sourceUserId = User.GetUserId(); var likedUser = await _unitOfWork.UserRepository.GetUserByUsernameAsync(username); var sourceUser = await _unitOfWork.LikesRepository.GetUserWithLikes(sourceUserId); if (likedUser == null) { return(NotFound()); } if (sourceUser.UserName == username) { return(BadRequest("You cannot like yourself")); } var userLike = await _unitOfWork.LikesRepository.GetUserLike(sourceUserId, likedUser.Id); // TODO: Implement Toggle if (userLike != null) { return(BadRequest("You already liked this user")); } userLike = new AppUserLike { SourceUserId = sourceUserId, LikedUserId = likedUser.Id, }; sourceUser.LikedUsers.Add(userLike); if (await _unitOfWork.Complete()) { return(Ok()); } return(BadRequest("Failed to like user")); }
public async Task <ActionResult> AddLike(string userName) { var sourceUserId = User.GetUserId(); var likedUser = await _userRepository.GetUserByUserNameAsync(userName); var sourceUser = await _likesRepository.GetUserWithLikes(sourceUserId); if (likedUser == null) { return(NotFound()); } if (sourceUser.UserName == userName) { return(BadRequest("You cannot like yourself")); } var userLike = await _likesRepository.GetUserLike(sourceUserId, likedUser.Id); if (userLike != null) { return(BadRequest("You already like this user")); } userLike = new AppUserLike { SourceUserId = sourceUserId, LikedUserId = likedUser.Id }; sourceUser.LikedUsers.Add(userLike); if (await _userRepository.SaveAllChangesAsync().ConfigureAwait(false)) { return(Ok()); } return(BadRequest("Failed to like user")); }