private IDocument LoadRemotePWCDocument(IDocument remoteDocument, ref byte[] checksum) {
var obj = this.TransmissionStorage.GetObjectByRemoteObjectId(remoteDocument.Id);
if (obj == null) {
return this.CreateRemotePWCDocument(remoteDocument);
}
if (obj.RemoteObjectPWCId != remoteDocument.VersionSeriesCheckedOutId) {
return this.CreateRemotePWCDocument(remoteDocument);
}
var remotePWCDocument = this.Session.GetObject(remoteDocument.VersionSeriesCheckedOutId) as IDocument;
if (remotePWCDocument == null) {
return this.CreateRemotePWCDocument(remoteDocument);
}
if (remotePWCDocument.ChangeToken != obj.LastChangeTokenPWC) {
return this.CreateRemotePWCDocument(remoteDocument);
}
checksum = obj.LastChecksumPWC;
return remotePWCDocument;
}