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); }
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); }
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); }
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); }