private async Task<PutBlockResponse> GeneratePutBlockRequestAsync(string containerName, string blobName, byte[] fullData, ArrayRangeWithBlockIdString range, string leaseId = null)
        {
            var md5Task = CalculateMD5Async(fullData, range.Offset, range.Length);

            var chunk = new byte[range.Length];
            Buffer.BlockCopy(fullData, range.Offset, chunk, 0, range.Length);

            return await PutBlockAsync(containerName, blobName, range.Id, chunk, await md5Task, leaseId);
        }
        private async Task <PutBlockResponse> GeneratePutBlockRequestAsync(string containerName, string blobName, byte[] fullData, ArrayRangeWithBlockIdString range, string leaseId = null)
        {
            var md5Task = CalculateMD5Async(fullData, range.Offset, range.Length);

            var chunk = new byte[range.Length];

            Buffer.BlockCopy(fullData, range.Offset, chunk, 0, range.Length);

            return(await PutBlockAsync(containerName, blobName, range.Id, chunk, await md5Task, leaseId));
        }