Example #1
0
        internal static async Task DownloadFileAsync(this Flickr flickr, StorageFolder folder, string fileName, SizeCollection sizes, CancellationToken cancellationToken)
        {
            var url     = sizes.OrderByDescending(s => s.Label == "Original" ? int.MaxValue : s.Width * s.Height).First().Source;
            var request = WebRequest.CreateHttp(url);

            using (cancellationToken.Register(request.Abort, false))
                using (var response = await request.GetResponseAsync())
                    using (var responseStream = response.GetResponseStream())
                        using (var outStream = await folder.OpenStreamForWriteAsync(fileName, CreationCollisionOption.ReplaceExisting))
                        {
                            await responseStream.CopyToAsync(outStream);
                        }
        }