public IActionResult DislikePhoto(int postId) { var userId = User.CurrentUserId(); if (postId < 0) { return(BadRequest("PostId claim error, cannot find PostID")); } UserLikePost like = new UserLikePost(); like.UserId = userId; like.PostId = postId; Post post = db.Post.Where(p => p.Id == postId).FirstOrDefault(); if (post == null) { return(BadRequest("PostId claim error, cannot find PostID")); } like.PostUserId = post.UserId; like.CreateDate = DateTime.Now; db.UserLikePost.Remove(like); db.SaveChanges(); return(Ok("Cancel Like successfully")); }
private async Task Dislike() { var likedRes = await _userLikePost.Get <List <Model.UserLikePost> >(new UserLikePostSearchRequest { UserId = APIService.loggedProfile.UserId, PostId = loadedPost.PostId }); UserLikePost local = likedRes.FirstOrDefault(); if (local == null) { UserLikePostUpsertRequest request = new UserLikePostUpsertRequest() { Liked = false, UserId = APIService.loggedProfile.UserId, PostId = loadedPost.PostId }; try { await _userLikePost.Insert <Model.UserLikePost>(request); await SetLikeDislike(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); } } else if (local.Liked == false || local.Liked == true) { try { await _userLikePost.Update <Model.UserLikePost>(0, new UserLikePostUpsertRequest() { Liked = false, PostId = loadedPost.PostId, UserId = APIService.loggedProfile.UserId }); await SetLikeDislike(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); } } }
public async Task <JsonResult> IncreaseLikes([FromBody] UserLikePost userLikePost) { //If there is no id of the user who like the post, it will be set the current user`s id if (userLikePost.UserId is null) { userLikePost.UserId = this._userManager.GetUserId(User); } if (IsUserExist(userLikePost.UserId) && this._postService.IsPostExist(userLikePost.PostId)) { var post = await this._postService .GetPostById(userLikePost.PostId); if (await IsPostLikedAsync(userLikePost.PostId, userLikePost.UserId)) { //like to be removed var like = post.UsersLikes.FirstOrDefault(l => l.UserId == userLikePost.UserId && l.PostId == userLikePost.PostId); post.UsersLikes.Remove(like); await this._postService.EditPost(post); return(new JsonResult(false)); } else { // Add new user like post as set post id and user id post.UsersLikes.Add(new UserLikePost { PostId = userLikePost.PostId, UserId = userLikePost.UserId }); await this._postService.EditPost(post); return(new JsonResult(true)); } } else { throw new ArgumentException($"Invalid data."); } }
private async Task SetLikeDislike() { var likedRes = await _userLikePost.Get <List <Model.UserLikePost> >(new UserLikePostSearchRequest { UserId = APIService.loggedProfile.UserId, PostId = loadedPost.PostId }); UserLikePost local = likedRes.FirstOrDefault(); var numberOfLikes = await _userLikePost.Get <List <Model.UserLikePost> >(new UserLikePostSearchRequest() { PostId = loadedPost.PostId, Liked = true }); var numberOfDislikes = await _userLikePost.Get <List <Model.UserLikePost> >(new UserLikePostSearchRequest() { PostId = loadedPost.PostId, Liked = false }); NumberOfLikes = numberOfLikes.Count(); NumberOfDislikes = numberOfDislikes.Count(); if (local == null) { LikeSource = ImageSource.FromFile("like.png"); DislikeSource = ImageSource.FromFile("dislike.png"); } else if (local.Liked == true) { LikeSource = ImageSource.FromFile("alreadyliked.png"); DislikeSource = ImageSource.FromFile("dislike.png"); } else if (local.Liked == false) { LikeSource = ImageSource.FromFile("like.png"); DislikeSource = ImageSource.FromFile("alreadydisliked.png"); } }