コード例 #1
0
        public async Task <AudioDbAlbum> GetAlbumAsync(long tadbAlbumId, string language, bool cacheOnly)
        {
            AudioDbAlbums audioDbAlbums = null;
            string        cache         = CreateAndGetCacheName(tadbAlbumId, "Album");

            if (!string.IsNullOrEmpty(cache) && File.Exists(cache))
            {
                audioDbAlbums = await _downloader.ReadCacheAsync <AudioDbAlbums>(cache).ConfigureAwait(false);
            }
            else
            {
                if (cacheOnly)
                {
                    return(null);
                }
                string url = GetUrl(URL_ALBUM_BY_TADB, tadbAlbumId);
                audioDbAlbums = await _downloader.DownloadAsync <AudioDbAlbums>(url, cache).ConfigureAwait(false);
            }
            if (audioDbAlbums.Albums != null && audioDbAlbums.Albums.Count > 0)
            {
                AudioDbAlbum album = audioDbAlbums.Albums.Where(a => a.AlbumId > 0).FirstOrDefault();
                if (album != null)
                {
                    album.SetLanguage(language);
                }
                return(album);
            }
            return(null);
        }
コード例 #2
0
        public async Task <List <AudioDbAlbum> > GetAlbumsByArtistIdAsync(long tadbArtistId, string language, bool cacheOnly)
        {
            AudioDbAlbums audioDbAlbums = null;
            string        cache         = CreateAndGetCacheName(tadbArtistId, "ArtistAlbums");

            if (!string.IsNullOrEmpty(cache) && File.Exists(cache))
            {
                audioDbAlbums = await _downloader.ReadCacheAsync <AudioDbAlbums>(cache).ConfigureAwait(false);
            }
            else
            {
                if (cacheOnly)
                {
                    return(null);
                }
                string url = GetUrl(URL_ALBUM_BY_ARTIST_TADB, tadbArtistId);
                audioDbAlbums = await _downloader.DownloadAsync <AudioDbAlbums>(url, cache).ConfigureAwait(false);
            }
            if (audioDbAlbums.Albums != null && audioDbAlbums.Albums.Count > 0)
            {
                List <AudioDbAlbum> list = audioDbAlbums.Albums.Where(a => a.AlbumId > 0).ToList();
                foreach (AudioDbAlbum album in list)
                {
                    album.SetLanguage(language);
                }
                if (list.Count > 0)
                {
                    return(list);
                }
            }
            return(null);
        }
コード例 #3
0
        public List <AudioDbAlbum> GetAlbumByMbid(string mbid, string language, bool cacheOnly)
        {
            AudioDbAlbums audioDbAlbums = null;
            string        cache         = CreateAndGetCacheName(mbid, "Album_mbId");

            if (!string.IsNullOrEmpty(cache) && File.Exists(cache))
            {
                audioDbAlbums = _downloader.ReadCache <AudioDbAlbums>(cache);
            }
            else
            {
                if (cacheOnly)
                {
                    return(null);
                }
                string url = GetUrl(URL_ALBUM_BY_MBID, mbid);
                audioDbAlbums = _downloader.Download <AudioDbAlbums>(url, cache);
            }
            if (audioDbAlbums.Albums != null && audioDbAlbums.Albums.Count > 0)
            {
                List <AudioDbAlbum> list = audioDbAlbums.Albums.Where(a => a.AlbumId > 0).ToList();
                foreach (AudioDbAlbum album in list)
                {
                    album.SetLanguage(language);
                }
                if (list.Count > 0)
                {
                    return(list);
                }
            }
            return(null);
        }
コード例 #4
0
        public async Task <List <AudioDbAlbum> > SearchAlbumAsync(string artistName, string albumName, string language)
        {
            string        url           = GetUrl(URL_ALBUM_BY_NAME_AND_ARTIST, Uri.EscapeDataString(artistName), Uri.EscapeDataString(albumName));
            AudioDbAlbums audioDbAlbums = await _downloader.DownloadAsync <AudioDbAlbums>(url).ConfigureAwait(false);

            if (audioDbAlbums == null || audioDbAlbums.Albums == null || audioDbAlbums.Albums.Count == 0)
            {
                url           = GetUrl(URL_ALBUM_BY_NAME, Uri.EscapeDataString(albumName));
                audioDbAlbums = await _downloader.DownloadAsync <AudioDbAlbums>(url).ConfigureAwait(false);
            }
            if (audioDbAlbums != null && audioDbAlbums.Albums != null && audioDbAlbums.Albums.Count > 0)
            {
                List <AudioDbAlbum> list = audioDbAlbums.Albums.Where(a => a.AlbumId > 0).ToList();
                foreach (AudioDbAlbum album in list)
                {
                    album.SetLanguage(language);
                }
                if (list.Count > 0)
                {
                    return(list);
                }
            }
            return(null);
        }