public void RemoveTrack()
 {
     try
     {
         var track = new LibraryRemoveTracksRequest(new List <string> {
             _trackID
         });
         _spotify.Library.RemoveTracks(track);
         Console.WriteLine("Track Unsaved.");
     }
     catch (APIUnauthorizedException e)
     {
         Console.WriteLine("Error Status: " + e.Response);
         Console.WriteLine("Error Msg: " + e.Message);
     }
     catch (APIException e)
     {
         Console.WriteLine("Error Status: " + e.Response);
         Console.WriteLine("Error Msg: " + e.Message);
     }
     catch (System.ArgumentOutOfRangeException e)
     {
         Console.WriteLine("Song not found!");
     }
 }
Esempio n. 2
0
    private async void OnToggleAddToLibrary()
    {
        SpotifyClient client = SpotifyService.Instance.GetSpotifyClient();

        // Get current context and check any are null
        CurrentlyPlayingContext context = this.GetCurrentContext();

        if (client != null && context != null)
        {
            List <string> ids = new List <string>();
            // Cast Item to correct type, add it's URI add make request
            if (context.Item.Type == ItemType.Track)
            {
                FullTrack track = context.Item as FullTrack;
                ids.Add(track.Id);

                if (_currentItemIsInLibrary)
                {
                    // Is in library, remove
                    LibraryRemoveTracksRequest removeRequest = new LibraryRemoveTracksRequest(ids);
                    await client.Library.RemoveTracks(removeRequest);

                    SetLibraryBtnIsLiked(false);
                }
                else
                {
                    // Not in library, add to user's library
                    LibrarySaveTracksRequest removeRequest = new LibrarySaveTracksRequest(ids);
                    await client.Library.SaveTracks(removeRequest);

                    SetLibraryBtnIsLiked(true);
                }
            }
            else if (context.Item.Type == ItemType.Episode)
            {
                FullEpisode episode = context.Item as FullEpisode;
                ids.Add(episode.Id);

                if (_currentItemIsInLibrary)
                {
                    LibraryRemoveShowsRequest request = new LibraryRemoveShowsRequest(ids);
                    await client.Library.RemoveShows(request);

                    SetLibraryBtnIsLiked(false);
                }
                else
                {
                    LibrarySaveShowsRequest request = new LibrarySaveShowsRequest(ids);
                    await client.Library.SaveShows(request);

                    SetLibraryBtnIsLiked(true);
                }
            }
        }
    }