Exemple #1
0
        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}");
        }
Exemple #6
0
 public async Task <dynamic> GetArtist(string artistId)
 {
     return(await _api.GetArtist(artistId));
 }