public IEnumerable <ProcessInfo> GetProcessInfos(ImportContext importContext) { var processInfos = new List <ProcessInfo>(); foreach (var settingsTab in _settingsTabs) { var runBefore = settingsTab.RunBefore(importContext); if (runBefore != null) { runBefore.WorkingDirectory = importContext.WorkingDir; processInfos.Add(runBefore); } } var skylineRunnerArgs = GetSkylineRunnerArgs(importContext); var argsToPrint = GetSkylineRunnerArgs(importContext, true); var skylineRunner = new ProcessInfo(SkylineRunnerPath, SKYLINE_RUNNER, skylineRunnerArgs, argsToPrint); skylineRunner.SetMaxTryCount(MAX_TRY_COUNT); processInfos.Add(skylineRunner); foreach (var settingsTab in _settingsTabs) { var runAfter = settingsTab.RunAfter(importContext); if (runAfter != null) { processInfos.Add(runAfter); } } return(processInfos); }
public void StopProcess() { if (_process != null && !_process.HasExited) { try { _procInfo.SetMaxTryCount(0); _process.Kill(); } catch (Exception e) { LogException(e, "Exception killing process {0}", _procInfo.ExeName); } } }
public IEnumerable<ProcessInfo> GetProcessInfos(ImportContext importContext) { var file = Path.GetFileName(importContext.GetCurrentFile()); Assert.IsNotNull(file); if (file.Equals("test1.txt")) { var procInfo1 = new ProcessInfo("Process1", ""); procInfo1.SetMaxTryCount(2); var procInfo2 = new ProcessInfo("Process2", ""); procInfo2.SetMaxTryCount(2); return new List<ProcessInfo> { procInfo1, // Exit code 0; successful procInfo2 // Exit code 1 first time; success second time }; } if (file.Equals("test2.txt")) { var procInfo3 = new ProcessInfo("Process3", ""); procInfo3.SetMaxTryCount(2); var procInfo4 = new ProcessInfo("Process4", ""); procInfo4.SetMaxTryCount(2); return new List<ProcessInfo> { procInfo3, // Exit code 0 but error during execution; succeed second time procInfo4 // Exit code 1; Fails both times }; } return Enumerable.Empty<ProcessInfo>(); }