public void Initialize() { missionHistory = new List <object>(); tracker = new TextFileTracker(MissionLogFolder, mask); tracker.OnNewLine = (line) => { var data = MissionLogDataBuilder.GetData(line, MissionStartDateTime, GetCurrentEventNumber(), server); if (data != null && actionManager != null) { var header = data as MissionLogEventHeader; header.MissionFile = Path.GetFileName(tracker.CurrentFileName); AddHistory(data); actionManager.ProcessAction(data); } }; tracker.OnFileCreation = (filePath) => { if (Regex.IsMatch(filePath, @"missionReport\([\d+|\-|_]+\)\[0\].txt", RegexOptions.IgnoreCase)) { //New mission log ClearHistory(); StartNewMission(filePath); } }; }
public void LoadScripts() { string folder = AppDomain.CurrentDomain.GetData("DataDirectory") + scriptsSubFolder; if (!Directory.Exists(folder)) { folder = @".\Scripts\"; } var scriptFiles = Directory.GetFiles(folder, "*.cs", SearchOption.AllDirectories); config.ScriptConfigs.RemoveAll(script => !scriptFiles.Contains(script.FileName) && !scriptFiles.Contains(Path.Combine(folder, script.FileName))); foreach (var scriptPath in scriptFiles) { var scriptFileName = Path.GetFileName(scriptPath); Util.Try(() => { LoadScript(scriptPath); }); } tracker = new TextFileTracker(folder, "*.cs"); tracker.OnChanged = (fileName) => { Util.Try(() => { Thread.Sleep(1000); LoadScript(fileName); }); }; tracker.OnFileCreation = (fileName) => { Util.Try(() => { Thread.Sleep(1000); LoadScript(fileName); }); }; tracker.Start(); }
public void LoadScripts() { var folder = AppDomain.CurrentDomain.GetData("DataDirectory") + SCRIPTS_SUB_FOLDER; if (!Directory.Exists(folder)) { folder = @".\Scripts\"; } var scriptFiles = Directory.GetFiles(folder, "*.cs", SearchOption.AllDirectories) .Where(path => !Path.GetFileName(path).StartsWith(".")) .ToList(); this.config.ScriptConfigs.RemoveAll(script => !scriptFiles.Contains(script.FileName) && !scriptFiles.Contains(Path.Combine(folder, script.FileName))); foreach (var scriptPath in scriptFiles) { var scriptFileName = Path.GetFileName(scriptPath); Util.Try(() => { this.LoadScript(scriptPath); }); } this.tracker = new TextFileTracker(folder, "*.cs") { OnChanged = (fileName) => { Util.Try(() => { Thread.Sleep(1000); this.LoadScript(fileName); }); }, OnFileCreation = (fileName) => { Util.Try(() => { Thread.Sleep(1000); this.LoadScript(fileName); }); } }; this.tracker.Start(); }