Exemple #1
0
        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>();
            }