public async Task SearchArtists_ArtistName_FirstArtistNameMatches()
        {
            // arrange
            const string artistName = "Radiohead";
            var          http       = new HttpClient();
            var          accounts   = new AccountsService(http, TestsHelper.GetLocalConfig());

            var artists = new ArtistsApi(http, accounts);

            // act
            var result = await artists.SearchArtists(artistName, 3);

            // assert
            Assert.AreEqual(artistName, result.Artists.Items[0].Name);
        }
Esempio n. 2
0
        public async Task <Track> FindSongForName(string name)
        {
            // HttpClient and AccountsService can be reused.
            // Tokens are automatically cached and refreshed
            var httpClient = new HttpClient();

            var accountsService = new AccountsService(httpClient);

            // Get an artist by Spotify Artist Id
            var artistsApi = new ArtistsApi(httpClient, accountsService);

            var searchResult = await artistsApi.SearchArtists("The Guy Who Sings Your Name");

            var artists = searchResult.Artists.Items;

            if (!artists.Any())
            {
                throw new Exception("Could not find any artists");
            }

            var guyWhoSingsYourNameOverAndOverAgain = artists.First();

            var artistId = guyWhoSingsYourNameOverAndOverAgain.Id;

            var accessToken = await accountsService.GetAccessToken();

            var albumApi = new MyAlbumsApi(httpClient, accessToken);

            var albumsByArtistId = await albumApi.GetAlbumsByArtistId(artistId);

            foreach (var album in albumsByArtistId)
            {
                var albumTracks = await GetAllAlbumTracks(albumApi, album);

                foreach (var albumTrack in albumTracks)
                {
                    if (albumTrack.Name.Contains(name))
                    {
                        return(albumTrack);
                    }
                }
            }

            return(new Track());
        }
Esempio n. 3
0
 public async Task <dynamic> SearchArtists(string artistId, int limit = 3)
 {
     return(await _api.SearchArtists(artistId, limit));
 }