public GetSimilarArtists ( string artistName ) : Task
|
||
artistName | string | |
return | Task
|
public async Task<List<Artist>> GetSimilarArtists(string artistName)
{
try
{
var lastFmClient = new HttpClient();
var response =
await
lastFmClient.GetStringAsync(
string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&format=json&limit=8&api_key={0}&artist={1}", App.ApiKeyLastFm, artistName));
var artists = JsonConvert.DeserializeObject<SimilarArtistInformation>(response);
if (artists == null || !artists.Similarartists.Artist.Any()) return null;
var similarArtists = artists.Similarartists.Artist;
var artistList = new List<Artist>();
foreach (var similarArtist in similarArtists)
{
var artist = new Artist();
artist.MapFrom(similarArtist);
artistList.Add(artist);
}
return artistList;
}
catch
{
Debug.WriteLine("Error getting similar artists from this artist.");
}
return null;
}
public static async Task GetArtistSimilarsArtist(MusicLibraryViewModel.ArtistItem artist) { try { var lastFmClient = new LastFmClient(); var similarArtists = await lastFmClient.GetSimilarArtists(artist.Name); if (similarArtists != null) { artist.OnlineRelatedArtists = similarArtists; artist.IsOnlineRelatedArtistsLoaded = true; } } catch { Debug.WriteLine("Error getting similar artists from this artist."); } }