/// <summary> /// Handles the change of a dictionary on the file system /// </summary> /// <param name="dictionary"></param> private static void HandleInstanceDictionaryChangesOnFileSystem(Dictionary dictionary) { OpenFileOperation openFile = new OpenFileOperation(dictionary.FilePath, EfsSystem.Instance, false, true); openFile.ExecuteUsingProgressDialog("Refreshing dictionary " + Path.GetFileNameWithoutExtension(dictionary.FilePath), false); RefreshModel.Execute(); }
private static void Main(string[] args) { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); XmlConfigurator.Configure(new FileInfo("logconfig.xml")); Options.Options.SetSettings(); EfsSystem.Instance.DictionaryChangesOnFileSystem += HandleInstanceDictionaryChangesOnFileSystem; MainWindow window = new MainWindow(); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; { // TRICKY SECTION // This thread is mandatory otherwise WCF does not create a new thread to handle the service requests. // Since the call to Cycle is blocking, creating such threads is mandatory Thread thread = ThreadUtil.CreateThread("EFS Service", HostEfsService); thread.Start(); } // Opens the Dictionary files and check them bool shouldPlace = true; foreach (string fileName in args) { const bool allowErrors = false; OpenFileOperation openFileOperation = new OpenFileOperation(fileName, EfsSystem.Instance, allowErrors, true); openFileOperation.ExecuteUsingProgressDialog("Opening file", false); window.SetupWindows(openFileOperation.Dictionary, shouldPlace); shouldPlace = false; } CheckModelOperation checkModel = new CheckModelOperation(); checkModel.ExecuteUsingProgressDialog("Checking model"); Application.Run(window); CloseEfsService(); } finally { Util.UnlockAllFiles(); } EfsSystem.Instance.Stop(); SynchronizerList.Stop(); }