public async Task <IValueProvider> BindAsync(IStorageBlob blob, ValueBindingContext context)
            {
                WatchableCloudBlobStream watchableStream = await WriteBlobArgumentBinding.BindStreamAsync(blob,
                                                                                                          context, _blobWrittenWatcherGetter.Value);

                return(new CloudBlobStreamValueBinder(blob, watchableStream));
            }
            public async Task <IValueProvider> BindAsync(IStorageBlob blob, ValueBindingContext context)
            {
                WatchableCloudBlobStream watchableStream = await WriteBlobArgumentBinding.BindStreamAsync(blob,
                                                                                                          context, _blobWrittenWatcherGetter.Value);

                const int DefaultBufferSize = 1024;

                TextWriter writer = new StreamWriter(watchableStream, Encoding.UTF8, DefaultBufferSize, leaveOpen: true);

                return(new TextWriterValueBinder(blob, watchableStream, writer));
            }
Exemplo n.º 3
0
        private async Task <Stream> CreateStreamAsync(
            BlobAttribute blobAttribute,
            ValueBindingContext context)
        {
            var cancellationToken = context.CancellationToken;
            var blob = await GetBlobAsync(blobAttribute, cancellationToken).ConfigureAwait(false);

            switch (blobAttribute.Access)
            {
            case FileAccess.Read:
                var readStream = await ReadBlobArgumentBinding.TryBindStreamAsync(blob.BlobClient, context).ConfigureAwait(false);

                return(readStream);

            case FileAccess.Write:
                var writeStream = await WriteBlobArgumentBinding.BindStreamAsync(blob,
                                                                                 context, _blobWrittenWatcherGetter.Value).ConfigureAwait(false);

                return(writeStream);

            default:
                throw new InvalidOperationException("Cannot bind blob to Stream using FileAccess ReadWrite.");
            }
        }