private void OnChunkSuccess(ChunkedUpload chunkedUpload) { _chunksCompleted++; _lastChunkUploaded = chunkedUpload; UpdateProgress(chunkedUpload.Offset, chunkedUpload.UploadId); var offset = chunkedUpload.Offset; var nextChunk = _fileSize.GetValueOrDefault(long.MaxValue) > offset ? _chunkNeeded.Invoke(offset) : new byte[0]; var chunkLength = nextChunk.GetLength(0); if (chunkLength > 0) { _client.AppendChunkedUploadAsync(chunkedUpload, nextChunk, OnChunkSuccess, OnChunkedUploadFailure); } else { _client.CommitChunkedUploadAsync(chunkedUpload, _path, _success, _failure, _overwrite, _parentRevision); } }