internal void UnSubscribe(Models.File file) { if (FileWatcher.ContainsKey(file)) { FileWatcher[file].Dispose(); FileWatcher.Remove(file); } }
internal void Subscribe(Models.File file) { if (!FileWatcher.ContainsKey(file)) { FileInfo fileInfo = new FileInfo(file.Path); FileSystemWatcher fileWatcher = new FileSystemWatcher(fileInfo.Directory.FullName, fileInfo.Name) { NotifyFilter = NotifyFilters.LastWrite }; fileWatcher.Changed += (object sender, FileSystemEventArgs e) => { Events.CreateNewVersionEvent.FileModified(new FileInfo(e.FullPath)); }; fileWatcher.EnableRaisingEvents = true; FileWatcher.Add(file, fileWatcher); } }