private static async Task AsyncMain(string[] args) { var http = new HttpClient(); var auth = new ClientCredentialsAuthorizationApi(http); var api = new ArtistsApi(http, auth); // Get an artist by Spotify Artist Id dynamic response = await api.GetArtist("1tpXaFf2F55E7kVJON4j4G"); Console.WriteLine(response); }
public async Task GetArtist_ArtistsId_CorrectArtistName() { // arrange const string artistId = "1tpXaFf2F55E7kVJON4j4G"; var http = new HttpClient(); var accounts = new AccountsService(http, TestsHelper.GetLocalConfig()); var api = new ArtistsApi(http, accounts); // act var response = await api.GetArtist(artistId); // assert Assert.AreEqual("Black Rebel Motorcycle Club", response.Name); }
public async Task TwoCompetingAccessTokenRequestsSameHttpClientGetConsistentResults() { const string artistId = "1tpXaFf2F55E7kVJON4j4G"; var http1 = new HttpClient(); var accounts1 = new AccountsService(http1, TestsHelper.GetLocalConfig()); var artists1 = new ArtistsApi(http1, accounts1); var accounts2 = new AccountsService(http1, TestsHelper.GetLocalConfig()); var artists2 = new ArtistsApi(http1, accounts2); // act await artists1.GetArtist(artistId); await artists2.GetArtist(artistId); // assert // no error }
public async Task Usage1() { // HttpClient and AccountsService can be reused. // Tokens are automatically cached and refreshed var http = new HttpClient(); var accounts = new AccountsService(http, TestsHelper.GetLocalConfig()); // Get an artist by Spotify Artist Id var artists = new ArtistsApi(http, accounts); Artist artist = await artists.GetArtist("1tpXaFf2F55E7kVJON4j4G"); string artistName = artist.Name; Trace.WriteLine($"Artist.Name = {artistName}"); // Get recommendations based on seed Artist Ids var browse = new BrowseApi(http, accounts); RecommendationsResult result = await browse.GetRecommendations(new[] { "1tpXaFf2F55E7kVJON4j4G", "4Z8W4fKeB5YxbusRsdQVPb" }, null, null); string firstTrackName = result.Tracks[0].Name; Trace.WriteLine($"First recommendation = {firstTrackName}"); // Page through a list of tracks in a Playlist var playlists = new PlaylistsApi(http, accounts); int limit = 100; PlaylistPaged playlist = await playlists.GetTracks("4h4urfIy5cyCdFOc1Ff4iN", limit : limit); int offset = 0; int j = 0; // using System.Linq while (playlist.Items.Any()) { for (int i = 0; i < playlist.Items.Length; i++) { Trace.WriteLine($"Track #{j += 1}: {playlist.Items[i].Track.Artists[0].Name} / {playlist.Items[i].Track.Name}"); } offset += limit; playlist = await playlists.GetTracks("4h4urfIy5cyCdFOc1Ff4iN", limit : limit, offset : offset); } }
public async Task Usage1() { // HttpClient and AccountsService can be reused. // Tokens are automatically cached and refreshed var http = new HttpClient(); var accounts = new AccountsService(http, TestsHelper.GetLocalConfig()); // Get an artist by Spotify Artist Id var artists = new ArtistsApi(http, accounts); var artist = await artists.GetArtist("1tpXaFf2F55E7kVJON4j4G"); string artistName = artist.Name; Trace.WriteLine($"Artist.Name = {artistName}"); // Get recommendations based on seed Artist Ids var browse = new BrowseApi(http, accounts); var result = await browse.GetRecommendations(new[] { "1tpXaFf2F55E7kVJON4j4G", "4Z8W4fKeB5YxbusRsdQVPb" }, null, null); string firstTrackName = result.Tracks[0].Name; Trace.WriteLine($"First recommendation = {firstTrackName}"); }
public async Task <dynamic> GetArtist(string artistId) { return(await _api.GetArtist(artistId)); }