StorageProgressExtensions
using System;
using System.IO;
namespace Azure.Storage
{
    internal static class StorageProgressExtensions
    {
        public static Stream WithProgress(this Stream stream, IProgress<long> progressHandler)
        {
            if (progressHandler != null && stream != null) {
                AggregatingProgressIncrementer aggregatingProgressIncrementer = progressHandler as AggregatingProgressIncrementer;
                if (aggregatingProgressIncrementer != null)
                    return aggregatingProgressIncrementer.CreateProgressIncrementingStream(stream);
                return new AggregatingProgressIncrementer(progressHandler).CreateProgressIncrementingStream(stream);
            }
            return stream;
        }
    }
}