/// <summary>
        /// Initializes a new instance of the <see cref="ExecuteTriggerCommandViewModel"/> class.
        /// </summary>
        /// <param name="commandDefinition">
        /// The command definition.
        /// </param>
        /// <param name="detailsViewModel">
        /// The details view-model.
        /// </param>
        /// <param name="triggerExecuter">
        /// The trigger executer.
        /// </param>
        /// <param name="windowManager">
        /// The window manager.
        /// </param>
        /// <param name="popupFactory">
        /// The popup factory.
        /// </param>
        /// <param name="securityEvaluator">
        /// The security evaluator.
        /// </param>
        public ExecuteTriggerCommandViewModel(
            ExecuteTriggerCommandDefinition commandDefinition,
            IDetailsViewModel detailsViewModel,
            ITriggerExecuter triggerExecuter,
            IShell windowManager,
            IPopupFactory popupFactory,
            ICommandSecurityEvaluator securityEvaluator)
        {
            if (commandDefinition == null)
                throw new ArgumentNullException("commandDefinition");

            if (detailsViewModel == null)
                throw new ArgumentNullException("detailsViewModel");

            if (triggerExecuter == null)
                throw new ArgumentNullException("triggerExecuter");

            if (windowManager == null)
                throw new ArgumentNullException("windowManager");

            if (popupFactory == null)
                throw new ArgumentNullException("popupFactory");

            if (securityEvaluator == null)
                throw new ArgumentNullException("securityEvaluator");

            _triggerExecuter = triggerExecuter;
            _windowManager = windowManager;
            _popupFactory = popupFactory;
            _securityEvaluator = securityEvaluator;

            _commandDefinition = commandDefinition;
            _detailsViewModel = detailsViewModel;
            
            CreateDetailsPropertyChangedListener();
        }
 /// <summary>
 /// Creates the execute trigger command view-model.
 /// </summary>
 /// <param name="commandDefinition">
 /// The command definition.
 /// </param>
 /// <param name="detailsViewModel">
 /// The details view-model.
 /// </param>
 /// <returns>
 /// The <see cref="IExecuteTriggerCommandViewModel"/>.
 /// </returns>
 public IExecuteTriggerCommandViewModel CreateViewModel(ExecuteTriggerCommandDefinition commandDefinition, IDetailsViewModel detailsViewModel)
 {
     return new ExecuteTriggerCommandViewModel(commandDefinition, detailsViewModel, TriggerExecuter, WindowManager, PopupFactory, SecurityEvaluator);
 }