Beispiel #1
0
        public async Task <RecommendationsResult> GetTrackRecommendations(string access_token)
        {
            var    http   = new HttpClient();
            var    browse = new BrowseApi(http, access_token);
            string id1    = artistListLong[0].id;
            string id2    = artistListLong[1].id;
            RecommendationsResult result = await browse.GetRecommendations(new[] { id1, id2 }, null, null);

            return(result);
        }
Beispiel #2
0
        public async Task GetFeaturedPlaylists_Limit2_ItemsLength2()
        {
            // arrange
            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api = new BrowseApi(http, accounts);

            // act
            var response = await api.GetFeaturedPlaylists(country : SpotifyCountryCodes.New_Zealand, limit : 2);

            Assert.AreEqual(2, response.Items.Length);
        }
Beispiel #3
0
        public async Task GetCategories_Limit2_ItemsLength2()
        {
            // arrange
            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api = new BrowseApi(http, accounts);

            // act
            var response = await api.GetCategories(limit : 2);

            Assert.AreEqual(2, response.Items.Length);
        }
Beispiel #4
0
        public async Task GetCategoryPlaylists_FromFirstNZCategoryLimit2_ItemsLength2()
        {
            // arrange
            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api      = new BrowseApi(http, accounts);
            var category = (await api.GetCategories(limit: 1, country: SpotifyCountryCodes.New_Zealand)).Items[0];

            // act
            var response = await api.GetCategoryPlaylists(category.Id, country : SpotifyCountryCodes.New_Zealand, limit : 2);

            Assert.AreEqual(2, response.Items.Length);
        }
Beispiel #5
0
        public async Task GetCategory_FromNZCategories_SameCategoryHref()
        {
            // arrange
            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api      = new BrowseApi(http, accounts);
            var category = (await api.GetCategories(limit: 1, country: SpotifyCountryCodes.New_Zealand)).Items[0];

            // act
            var response = await api.GetCategory(category.Id, country : SpotifyCountryCodes.New_Zealand);

            Assert.AreEqual(category.Href, response.Href);
        }
Beispiel #6
0
        public async Task GetNewReleases_NoParams_NoError()
        {
            // arrange
            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api = new BrowseApi(http, accounts);

            // act
            var response = await api.GetNewReleases();

            string name = response.Items[0].Name;

            Trace.WriteLine(name);
        }
Beispiel #7
0
        public async Task GetAvailableGenreSeeds_NoParams_NoError()
        {
            // arrange
            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api = new BrowseApi(http, accounts);

            // act
            var response = await api.GetAvailableGenreSeeds();

            string name = response[0];

            Trace.WriteLine(name);
        }
Beispiel #8
0
        public async Task GetRecommendations_SeedArtists_NoError()
        {
            // arrange
            string[] seedArtists = new[] { "1tpXaFf2F55E7kVJON4j4G", "4Z8W4fKeB5YxbusRsdQVPb" };

            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api = new BrowseApi(http, accounts);

            // act
            var response = await api.GetRecommendations(seedArtists, null, null);

            string name = response.Tracks[0].Name;

            Trace.WriteLine(name);
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #10
0
        public async Task GetRecommendations_SeedArtists_NoError()
        {
            // arrange
            string[] seedArtists = new[] { "1tpXaFf2F55E7kVJON4j4G", "4Z8W4fKeB5YxbusRsdQVPb" };

            var config = new ConfigurationBuilder()
                         .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "..\\..\\.."))
                         .AddJsonFile("appsettings.local.json", false)
                         .Build();

            var http     = new HttpClient();
            var accounts = new AccountsService(http, TestsHelper.GetLocalConfig());

            var api = new BrowseApi(http, accounts);

            // act
            var response = await api.GetRecommendations(seedArtists, null, null);

            string name = response.Tracks[0].Name;

            Trace.WriteLine(name);
        }
        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}");
        }