public void Go() { while (_processQueue.Count > 0) { var operation = _processQueue.Dequeue(); var executableResult = new ExecutableProcess(_logger, _commandPatternCommandPatternSubsitution).Run(operation.Command, operation.Arguments); if (!operation.AcceptableReturnCodes.ToList().Contains(executableResult.ExitCode)) { throw new UnsuccessfulCommandExecutionException("Command Failed. ", executableResult); } } }