private async Task Like() { var likedRes = await _userAlbumVote.Get <List <Model.UserAlbumVote> >(new UserAlbumVoteSearchRequest { UserId = APIService.loggedProfile.UserId, AlbumId = AlbumId }); UserAlbumVote local = likedRes.FirstOrDefault(); if (local == null) { UserAlbumVoteUpsertRequest request = new UserAlbumVoteUpsertRequest() { Liked = true, UserId = APIService.loggedProfile.UserId, AlbumId = AlbumId }; try { await _userAlbumVote.Insert <Model.UserAlbumVote>(request); await GlobalMethods.GenerateRating(AlbumId); await AddOrRemoveFromLikedAlbums(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 _userAlbumVote.Update <Model.UserAlbumVote>(0, new UserAlbumVoteUpsertRequest() { Liked = true, AlbumId = AlbumId, UserId = APIService.loggedProfile.UserId }); await GlobalMethods.GenerateRating(AlbumId); if (local.Liked == true) { await AddOrRemoveFromLikedAlbums(true); } else { await AddOrRemoveFromLikedAlbums(false); } await SetLikeDislike(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); } } }
private async Task SetLikeDislike() { var likedRes = await _userAlbumVote.Get <List <Model.UserAlbumVote> >(new UserAlbumVoteSearchRequest { UserId = APIService.loggedProfile.UserId, AlbumId = AlbumId }); UserAlbumVote local = likedRes.FirstOrDefault(); var numberOfLikes = await _userAlbumVote.Get <List <Model.UserAlbumVote> >(new UserAlbumVoteSearchRequest() { AlbumId = LoadedAlbum.AlbumId, Liked = true }); var numberOfDislikes = await _userAlbumVote.Get <List <Model.UserAlbumVote> >(new UserAlbumVoteSearchRequest() { AlbumId = LoadedAlbum.AlbumId, 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"); } var reloadedAlbum = await _albumService.GetById <Album>(AlbumId); RatingStr = "Rating: " + reloadedAlbum.AlbumGeneratedRating.ToString() + "/5"; }