/// <summary>
 /// Creates a new instance of the core. Ideally this should be created by Ninject to ensure all dependencies are handled appropriately.
 /// Note: A TerminalBindings class lives in the Terminal.Core.Ninject.BindingModules namespace. Use this when building your Ninject kernel to ensure proper dependency injection.
 /// 
 /// Sampel: IKernel kernel = new StandardKernel(new TerminalBindings());
 /// </summary>
 /// <param name="commands">A list of all commands available to the application.</param>
 /// <param name="userRepository">The user repository used to retrieve the current user from the database.</param>
 public TerminalApi(List<ICommand> commands, IDataBucket dataBucket)
 {
     _commands = commands;
     _dataBucket = dataBucket;
     _commandContext = new CommandContext();
     TerminalEvents = new TerminalEvents();
 }
 /// <summary>
 /// Set default values for certain properties.
 /// </summary>
 public CommandResult(TerminalEvents terminalEvents)
 {
     DisplayItems = new List<DisplayItem>();
     ScrollToBottom = true;
     _terminalEvents = terminalEvents;
 }
 /// <summary>
 /// Set default values for certain properties.
 /// </summary>
 public CommandResult(TerminalEvents terminalEvents)
 {
     DisplayItems    = new List <DisplayItem>();
     ScrollToBottom  = true;
     _terminalEvents = terminalEvents;
 }