private IEnumerator <IAsyncResult> AsynchronousCopyBlobImpl(UriString copySource, bool isSourceAzureBlob, FECopyType copyType, long contentLength, string contentType, NameValueCollection serviceMetadataCollection, byte[] applicationMetadata, ISequenceNumberUpdate sequenceNumberUpdate, OverwriteOption overwriteOption, string sourceETag, IBlobObjectCondition destinationCondition, AsyncIteratorContext <CopyBlobOperationInfo> context) { IAsyncResult asyncResult; try { asyncResult = this.blob.BeginAsynchronousCopyBlob(copySource, isSourceAzureBlob, copyType, contentLength, contentType, serviceMetadataCollection, applicationMetadata, sequenceNumberUpdate, overwriteOption, sourceETag, Helpers.Convert(destinationCondition), context.GetResumeCallback(), context.GetResumeState("IBlobObject.BeginAsynchronousCopyBlob")); } catch (Exception exception) { StorageStamp.TranslateException(exception); throw; } yield return(asyncResult); CopyBlobOperationInfo copyBlobOperationInfo = null; try { copyBlobOperationInfo = this.blob.EndAsynchronousCopyBlob(asyncResult); } catch (Exception exception1) { StorageStamp.TranslateException(exception1); throw; } context.ResultData = copyBlobOperationInfo; }
private IEnumerator <IAsyncResult> SynchronousCopyBlobImpl(string sourceAccount, IBlobObject sourceBlob, DateTime?expiryTime, byte[] applicationMetadata, OverwriteOption overwriteOption, IBlobObjectCondition sourceCondition, IBlobObjectCondition destinationCondition, UriString copySource, AsyncIteratorContext <CopyBlobOperationInfo> context) { IAsyncResult asyncResult; try { asyncResult = this.blob.BeginSynchronousCopyBlob(sourceAccount, ((BaseBlobObject)sourceBlob).blob, StorageStampHelpers.AdjustNullableDatetimeRange(expiryTime), applicationMetadata, overwriteOption, Helpers.Convert(sourceCondition), Helpers.Convert(destinationCondition), copySource, context.GetResumeCallback(), context.GetResumeState("IBlobObject.BeginSynchronousCopyBlob")); } catch (Exception exception) { StorageStamp.TranslateException(exception); throw; } yield return(asyncResult); CopyBlobOperationInfo copyBlobOperationInfo = null; try { copyBlobOperationInfo = this.blob.EndSynchronousCopyBlob(asyncResult); } catch (Exception exception1) { StorageStamp.TranslateException(exception1); throw; } context.ResultData = copyBlobOperationInfo; }