Microsoft.WindowsAzure.MediaServices.Client.BlobUploader.BeginPutBlockList C# (CSharp) Method

BeginPutBlockList() private method

private BeginPutBlockList ( Microsoft.WindowsAzure.MediaServices.Client.BlobTransferContext transferContext ) : void
transferContext Microsoft.WindowsAzure.MediaServices.Client.BlobTransferContext
return void
        private void BeginPutBlockList(BlobTransferContext transferContext)
        {
            if (transferContext.CancellationToken.IsCancellationRequested)
            {
                return;
            }

            OperationContext operationContext = new OperationContext();
            operationContext.ClientRequestID = transferContext.ClientRequestId;

            List<string> blockids = new List<string>();
            for (int i = 0; i < (transferContext.Length + transferContext.BlockSize - 1) / transferContext.BlockSize; i++)
            {
                blockids.Add(
                    Convert.ToBase64String(
                        Encoding.ASCII.GetBytes(string.Format(CultureInfo.InvariantCulture, "BlockId{0:d7}", i))));
            }

            transferContext.Blob.BeginPutBlockList(
                blockids,
                AccessCondition.GenerateEmptyCondition(),
                transferContext.BlobRequestOptions,
                operationContext,
                ar =>
                {
                    SuccessfulOrRetryableResult wasWriteSuccessful = EndPutBlockList(transferContext, ar);
                    Interlocked.Decrement(ref transferContext.NumInProgressUploadDownloads);

                    if (wasWriteSuccessful.IsRetryable)
                    {
                        BeginPutBlockList(transferContext);
                        return;
                    }

                    transferContext.IsComplete = true;
                },
                state: null);
        }