public void Start() { try { _managerOutput.WriteLine("Process Started"); while (true) { RunSteps(); if (_runningTasks.Count == 0) { break; } CheckSteps(); WaitAnyTasks(); } _managerOutput.WriteLine("All Complete"); } catch (StepFailedException) { KillAllRunningSteps(); WaitAllTasks(); _managerOutput.WriteLine("Process Failed"); } Cleanup(); }
private void WriteOutput(object sender, DataReceivedEventArgs args) { if (!_outStream.CanWrite || string.IsNullOrEmpty(args.Data)) { return; } var lines = args.Data.Split("\n"); foreach (var line in lines) { _outStream.WriteLine(line); } }
public async Task <bool> Run() { _managerOutput.WriteLine("Starting " + _stepName); var result = await RunActions(); Cleanup(); if (!result) { _managerOutput.WriteLine("Failed " + _stepName); return(false); } _managerOutput.WriteLine("Finished " + _stepName); return(true); }