/// <summary> /// Initializes the main bari process /// </summary> /// <param name="output">User output interface to write messages to</param> /// <param name="parameters">User defined parameters describing the process to be performed</param> /// <param name="loader">The suite model loader implementation to be used</param> /// <param name="commandFactory">Factory for command objects</param> /// <param name="explorer">Suite explorer runner</param> /// <param name="binding">Interface to bind new dependencies</param> public MainProcess(IUserOutput output, IParameters parameters, ISuiteLoader loader, ICommandFactory commandFactory, ExplorerRunner explorer, IBindingRoot binding) { Contract.Requires(output != null); Contract.Requires(parameters != null); Contract.Requires(commandFactory != null); Contract.Requires(loader != null); Contract.Requires(explorer != null); this.output = output; this.parameters = parameters; this.loader = loader; this.commandFactory = commandFactory; this.explorer = explorer; this.binding = binding; }