Esempio n. 1
0
        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");
                }
            }
        }
Esempio n. 2
0
        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");
            }
        }