private async Task<BitmapImage> Download(string imageUrl, string imageName, string imageSaveName)
{
Stream imageStream = null;
var client = new WebClient();
try
{
var imageUri = new Uri(string.Format(imageUrl, imageName));
imageStream = await client.OpenReadTaskAsync(imageUri);
}
catch (Exception ex)
{
// Let it fail if not something catastrophic
if (!(ex is WebException))
throw;
}
if (imageStream == null)
return null;
var streamResourceInfo = new StreamResourceInfo(imageStream, null);
var streamReader = new StreamReader(streamResourceInfo.Stream);
byte[] imageBytes;
using (var binaryReader = new BinaryReader(streamReader.BaseStream))
imageBytes = binaryReader.ReadBytes((int) streamReader.BaseStream.Length);
var image = new BitmapImage();
string name = imageSaveName ?? imageName;
using (var stream = _isolatedStorageFile.CreateFile(name))
{
stream.Write(imageBytes, 0, imageBytes.Length);
image.SetSource(stream);
}
return image;
}
}