/** * Read all county files */ private void ReadCounties() { var selectedCounties = ReadSelectedCounties(); //Read county files foreach (string filePath in Directory.EnumerateFiles(Configuration.GetSetting(Configuration.INPUT_DIRECTORY))) { County county = ReadCounty(filePath, selectedCounties); if (county != null) { Counties.Add(county); } } CountiesRead?.Invoke(); }
/** * Event handler for when a county file's contents change * */ private void OnCountyFileChanged(object source, FileSystemEventArgs e) { try { Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType); var selectedCounties = ReadSelectedCounties(); lock (e) { if (e.ChangeType == WatcherChangeTypes.Changed) { var now = DateTime.Now; var lastWriteTime = File.GetLastWriteTime(e.FullPath); string fileName = Path.GetFileNameWithoutExtension(e.FullPath); if (!fileName.StartsWith("_")) { County toUpdate = ReadCounty(e.FullPath, selectedCounties); if (toUpdate == null) { return; } foreach (var county in Counties) { if (county.Name == toUpdate.Name) { county.Code = toUpdate.Code; county.Processed = toUpdate.Processed; CountyUpdated?.Invoke(county); } } } // do something... _lastRead = lastWriteTime; } } } catch (Exception ex) { Error?.Invoke(ex.Message); } }
private void OnCountyFileUpdated(County county) { CountyFileUpdated?.Invoke(county); }