public void SaveTrack() { try { var track = new LibrarySaveTracksRequest(new List <string> { _trackID }); _spotify.Library.SaveTracks(track); Console.WriteLine("Track Saved."); } 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!"); } }
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); } } } }