Пример #1
0
        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);
                }
            };
        }
Пример #2
0
        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();
        }
Пример #3
0
		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();
		}