Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }