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); }
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()); }
public async Task <dynamic> SearchArtists(string artistId, int limit = 3) { return(await _api.SearchArtists(artistId, limit)); }