public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary,
                               WizardRunKind runKind, object[] customParams)
        {
            dteObject         = automationObject as DTE;
            presentationModel = new SiteColumnWizardModel(dteObject, false);

            if (!presentationModel.ProjectService.IsSharePointInstalled)
            {
                string errorString = "A SharePoint server is not installed on this computer. A SharePoint server " +
                                     "must be installed to work with SharePoint projects.";
                System.Windows.MessageBox.Show(errorString, "SharePoint Not Installed", System.Windows.MessageBoxButton.OK,
                                               System.Windows.MessageBoxImage.Error);
                throw new WizardCancelledException(errorString);
            }

            wizardUI = new WizardWindow(presentationModel);
            Nullable <bool> dialogCompleted = wizardUI.ShowModal();

            if (dialogCompleted == true)
            {
                replacementsDictionary.Add("$selectedfieldtype$", presentationModel.FieldType);
                replacementsDictionary.Add("$selectedgrouptype$", presentationModel.FieldGroup);
                replacementsDictionary.Add("$fieldname$", presentationModel.FieldName);
                signingManager.GenerateKeyFile();
            }
            else
            {
                throw new WizardCancelledException();
            }
        }
 internal WizardWindow(SiteColumnWizardModel presentationModel)
 {
     InitializeComponent();
     this.PresentationModel = presentationModel;
     firstPage             = new Page1(this);
     secondPage            = new Page2(this);
     secondPage.Visibility = Visibility.Hidden;
 }