public async Task <List <AudioDbArtist> > GetArtistByMbidAsync(string mbid, string language, bool cacheOnly) { AudioDbArtists audioDbArtists = null; string cache = CreateAndGetCacheName(mbid, "Artist_mbId"); if (!string.IsNullOrEmpty(cache) && File.Exists(cache)) { audioDbArtists = await _downloader.ReadCacheAsync <AudioDbArtists>(cache).ConfigureAwait(false); } else { if (cacheOnly) { return(null); } string url = GetUrl(URL_ARTIST_BY_MBID, mbid); audioDbArtists = await _downloader.DownloadAsync <AudioDbArtists>(url, cache).ConfigureAwait(false); } if (audioDbArtists.Artists != null && audioDbArtists.Artists.Count > 0) { List <AudioDbArtist> list = audioDbArtists.Artists.Where(a => a.ArtistId > 0).ToList(); foreach (AudioDbArtist artist in list) { artist.SetLanguage(language); } if (list.Count > 0) { return(list); } } return(null); }
public async Task <AudioDbArtist> GetArtistAsync(long tadbArtistID, string language, bool cacheOnly) { AudioDbArtists audioDbArtists = null; string cache = CreateAndGetCacheName(tadbArtistID, "Artist"); if (!string.IsNullOrEmpty(cache) && File.Exists(cache)) { audioDbArtists = await _downloader.ReadCacheAsync <AudioDbArtists>(cache).ConfigureAwait(false); } else { if (cacheOnly) { return(null); } string url = GetUrl(URL_ARTIST_BY_TADB, tadbArtistID); audioDbArtists = await _downloader.DownloadAsync <AudioDbArtists>(url, cache).ConfigureAwait(false); } if (audioDbArtists.Artists != null && audioDbArtists.Artists.Count > 0) { AudioDbArtist artist = audioDbArtists.Artists.Where(a => a.ArtistId > 0).FirstOrDefault(); if (artist != null) { artist.SetLanguage(language); } return(artist); } return(null); }
public async Task <List <AudioDbArtist> > SearchArtistAsync(string artistName, string language) { string url = GetUrl(URL_ARTIST_BY_NAME, Uri.EscapeDataString(artistName)); AudioDbArtists audioDbArtists = await _downloader.DownloadAsync <AudioDbArtists>(url).ConfigureAwait(false); if (audioDbArtists.Artists != null && audioDbArtists.Artists.Count > 0) { List <AudioDbArtist> list = audioDbArtists.Artists.Where(a => a.ArtistId > 0).ToList(); foreach (AudioDbArtist artist in list) { artist.SetLanguage(language); } if (list.Count > 0) { return(list); } } return(null); }