private AbstractFolderEvent CreateRemoteEventBasedOnStorage(IFileableCmisObject cmisObject, IMappedObject storedParent, IMappedObject storedMappedChild)
{
AbstractFolderEvent newEvent = null;
if (storedParent != null && storedMappedChild.ParentId == storedParent.RemoteObjectId) {
// Renamed or Equal
if (storedMappedChild.Name == cmisObject.Name) {
// Equal or property update
if (storedMappedChild.LastChangeToken != cmisObject.ChangeToken) {
// Update
newEvent = FileOrFolderEventFactory.CreateEvent(cmisObject, null, MetaDataChangeType.CHANGED, src: this);
AddRemoteContentChangeTypeToFileEvent(newEvent as FileEvent, storedMappedChild, cmisObject as IDocument);
} else {
// Equal
newEvent = null;
}
} else {
// Renamed
newEvent = FileOrFolderEventFactory.CreateEvent(cmisObject, null, MetaDataChangeType.CHANGED, src: this);
AddRemoteContentChangeTypeToFileEvent(newEvent as FileEvent, storedMappedChild, cmisObject as IDocument);
}
} else {
// Moved
newEvent = FileOrFolderEventFactory.CreateEvent(cmisObject, null, MetaDataChangeType.MOVED, oldRemotePath: this.storage.GetRemotePath(storedMappedChild), src: this);
AddRemoteContentChangeTypeToFileEvent(newEvent as FileEvent, storedMappedChild, cmisObject as IDocument);
}
return newEvent;
}