public override bool Handle(ISyncEvent e) {
if (e is ConfigChangedEvent) {
return false;
}
if (!this.isRootFolderAvailable || e is FSEvent || e is AbstractFolderEvent) {
var rootFolderWasAvailable = this.isRootFolderAvailable;
var rootFolderExists = this.IsRootFolderAvailable();
if (!rootFolderExists) {
Logger.Fatal(string.Format("Local root folder \"{0}\" is missing: All events will be ignored until the root folder is back again.", this.absolutePath));
} else if (!rootFolderWasAvailable) {
Logger.Info(string.Format("Local root folder \"{0}\" is available again", this.absolutePath));
}
if (rootFolderExists != rootFolderWasAvailable) {
var handler = this.RepoRootDeleted;
if (handler != null) {
handler(this, new RootExistsEventArgs(rootFolderExists));
}
}
return !rootFolderExists;
} else {
return false;
}
}