private async ValueTask <Image> GetImageAsync(string artworkUrl) { Image image; var lookupKey = artworkUrl.Substring(artworkUrl.LastIndexOf("/") + 1); if (CacheFileManager.TryGetFileCache(lookupKey, out var fs)) { using (fs) { image = Image.FromStream(fs); } } else { var imageBytes = await httpClient.GetByteArrayAsync(new Uri(artworkUrl)); image = (Image)(new ImageConverter()).ConvertFrom(imageBytes); CacheFileManager.SaveCache(lookupKey, imageBytes); } return(image); }