public IAsyncOperation<Blob> UploadBlob(BlobInfo blobInfo, IInputStream source) { if (source == null) { throw new ArgumentNullException("source"); } blobInfo.ValidateRequired("blobInfo"); return AsyncInfo.Run( async cancelToken => { Stream stream = source.AsStreamForRead(); Uri blobUri = await Client.RecordMethods.UploadBlobStreamAsync( m_recordRef, stream, blobInfo.ContentType, cancelToken); return new Blob(blobInfo, (int) stream.Length, blobUri.AbsoluteUri); } ); }