public Handle ( ISyncEvent e ) : bool | ||
e | ISyncEvent | /// Any ISyncEvent /// |
return | bool |
public override bool Handle(ISyncEvent e) {
if (e is FolderEvent) {
var folderEvent = e as FolderEvent;
if(folderEvent.LocalFolder != null) {
return false;
}
if (!this.matcher.CanCreateLocalPath(folderEvent.RemoteFolder.Path)) {
Logger.Debug("Dropping FolderEvent for not accessable path: " + folderEvent.RemoteFolder.Path);
return true;
}
Logger.Debug("Fetching local object for " + folderEvent);
string localPath = this.matcher.CreateLocalPath(folderEvent.RemoteFolder.Path);
folderEvent.LocalFolder = this.fsFactory.CreateDirectoryInfo(localPath);
}
if (e is FileEvent) {
var fileEvent = e as FileEvent;
if (fileEvent.LocalFile != null) {
return false;
}
if (!this.matcher.CanCreateLocalPath(fileEvent.RemoteFile.Paths[0])) {
Logger.Debug("Dropping FileEvent for not accessable path: " + fileEvent.RemoteFile.Paths[0]);
return true;
}
Logger.Debug("Fetching local object for " + fileEvent);
string localPath = this.matcher.CreateLocalPath(fileEvent.RemoteFile.Paths[0]);
fileEvent.LocalFile = this.fsFactory.CreateFileInfo(localPath);
}
return false;
}
}
public void IgnoresOtherEvents() { var matcher = new Mock<IPathMatcher>(); var syncEvent = new Mock<ISyncEvent>(); var fetcher = new LocalObjectFetcher(matcher.Object); Assert.That(fetcher.Handle(syncEvent.Object), Is.False); }