Ejemplo n.º 1
0
        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);
        }