private async Task Like() { var likedRes = await _userTrackVoteService.Get <List <Model.UserTrackVote> >(new UserTrackVoteSearchRequest { UserId = APIService.loggedProfile.UserId, TrackId = TrackId }); UserTrackVote local = likedRes.FirstOrDefault(); if (local == null) { UserTrackVoteUpsertRequest request = new UserTrackVoteUpsertRequest() { Liked = true, UserId = APIService.loggedProfile.UserId, TrackId = TrackId }; try { await _userTrackVoteService.Insert <Model.UserAlbumVote>(request); await GlobalMethods.GenerateRating(ThisAlbum.AlbumId); await AddOrRemoveFromLikedTracks(false); await SetLikeDislike(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); } } else if (local.Liked == true || local.Liked == false) { try { await _userTrackVoteService.Update <Model.UserTrackVote>(0, new UserTrackVoteUpsertRequest() { Liked = true, TrackId = TrackId, UserId = APIService.loggedProfile.UserId }); await GlobalMethods.GenerateRating(ThisAlbum.AlbumId); if (local.Liked == true) { await AddOrRemoveFromLikedTracks(true); } else { await AddOrRemoveFromLikedTracks(false); } await SetLikeDislike(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); } } }
private async Task SetLikeDislike() { var likedRes = await _userTrackVoteService.Get <List <Model.UserTrackVote> >(new UserTrackVoteSearchRequest { UserId = APIService.loggedProfile.UserId, TrackId = TrackId }); UserTrackVote local = likedRes.FirstOrDefault(); var numberOfLikes = await _userTrackVoteService.Get <List <Model.UserTrackVote> >(new UserTrackVoteSearchRequest() { TrackId = TrackId, Liked = true }); var numberOfDislikes = await _userTrackVoteService.Get <List <Model.UserTrackVote> >(new UserTrackVoteSearchRequest() { TrackId = TrackId, 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"); } }