private void HandleFolderEvents(IFSEvent e) {
var movedEvent = e as IFSMovedEvent;
FolderEvent folderEvent;
if (movedEvent != null) {
folderEvent = new FolderMovedEvent(
this.fsFactory.CreateDirectoryInfo(movedEvent.OldPath),
this.fsFactory.CreateDirectoryInfo(movedEvent.LocalPath),
null,
null,
this)
{ Local = MetaDataChangeType.MOVED };
} else {
folderEvent = new FolderEvent(this.fsFactory.CreateDirectoryInfo(e.LocalPath), null, this);
switch (e.Type) {
case WatcherChangeTypes.Created:
folderEvent.Local = MetaDataChangeType.CREATED;
break;
case WatcherChangeTypes.Changed:
folderEvent.Local = MetaDataChangeType.CHANGED;
break;
case WatcherChangeTypes.Deleted:
folderEvent.Local = MetaDataChangeType.DELETED;
break;
default:
// This should never ever happen
return;
}
}
Queue.AddEvent(folderEvent);
}