public async Task<IStorageContainer> GetContainerAsync(string name)
        {
            CloudBlobContainer container = this._blobClient.GetContainerReference(name.ToLower());

            bool containerExists = await container.ExistsAsync().ConfigureAwait(false);
            if (!containerExists)
                throw new FileWarehouse.StorageException(StorageExceptionReason.ContainerNotFound, $"Container '{name}' not exist.");

            IStorageContainer storageContainer = new AzureBlobStorageContainer(container);

            return storageContainer;
        }
        public async Task<IStorageContainer> CreateOrGetContainerAsync(string name, ContainerPermission permission, bool failIfExist)
        {
            CloudBlobContainer container = this._blobClient.GetContainerReference(name.ToLower());
            var isCreated = await container.CreateIfNotExistsAsync().ConfigureAwait(false);

            if (failIfExist && !isCreated)
                throw new FileWarehouse.StorageException(StorageExceptionReason.ContainerExistAlready, "Container exist already.");

            IStorageContainer storageContainer = new AzureBlobStorageContainer(container);
            await storageContainer.SetPermissionAsync(permission).ConfigureAwait(false);

            return storageContainer;
        }