Beispiel #1
0
        /*
         * Event handler to download image
         */
        public static async Task <bool> DownloadImage(object sender, RoutedEventArgs e, Image img)
        {
            try
            {
                StorageFolder AppFolder;
                string        fileName = img.Name + ".gif";

                var CheckFolder = await KnownFolders.PicturesLibrary.TryGetItemAsync("Gifology");

                if (CheckFolder == null)
                {
                    AppFolder = await KnownFolders.PicturesLibrary.CreateFolderAsync("Gifology");
                }
                else
                {
                    AppFolder = CheckFolder as StorageFolder;
                }

                try
                {
                    if (await AppFolder.TryGetItemAsync(fileName) == null)
                    {
                        var httpClient = new HttpClient();

                        var OriginalUrl = ((BitmapImage)img.Source).UriSource.OriginalString;
                        var RequestUri  = Uri.IsWellFormedUriString(ConvertSourceType(OriginalUrl, SettingsItem.GifQuality), UriKind.Absolute) ?
                                          new Uri(ConvertSourceType(OriginalUrl, SettingsItem.GifQuality)) :
                                          new Uri(ConvertSourceType(OriginalUrl, "High"));

                        HttpResponseMessage message = await httpClient.GetAsync(RequestUri);

                        StorageFile SampleFile = await AppFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

                        byte[] file = await message.Content.ReadAsByteArrayAsync();

                        await FileIO.WriteBytesAsync(SampleFile, file);

                        var files = await AppFolder.GetFilesAsync();

                        return(true);
                    }
                    else
                    {
                        return(true);
                    }
                }
                catch
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }