public override void Start() { if (MonitorDirectories.Length > 0) { ServiceTypes.Clear(); MonitorDirectories.Each(new { Server = this }, (ctx, dir) => { ctx.Server.TryReloadServices(new DirectoryInfo(dir)); }); } else { RegisterServiceTypes(); } base.Start(); }
/// <summary> /// Wire the event handlers /// </summary> protected void WireEventHandlers() { _server = new HttpServer(Logger ?? Log.Default); WireServerRequestHandler(); WireResponderEventHandlers(); MonitorDirectories.Each(directory => { if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } DirectoryInfo directoryInfo = new DirectoryInfo(directory); FileSystemWatchers.Add(directoryInfo.OnChange(CreatedOrChangedHandler)); FileSystemWatchers.Add(directoryInfo.OnCreated(CreatedOrChangedHandler)); FileSystemWatchers.Add(directoryInfo.OnRenamed(RenamedHandler)); }); }