BattlelogMobile.Core.Repository.ImageRepository.Download C# (CSharp) Method

Download() private method

private Download ( string imageUrl, string imageName, string imageSaveName ) : Task
imageUrl string
imageName string
imageSaveName string
return Task
        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;
        }
    }
ImageRepository