public override void RunStartedExtention(Dictionary <string, string> replacementsDictionary)
        {
            //get a xrm connection and package setting by loading the entry dialogs
            XrmPackageSettings = new XrmPackageSettings();
            #if DEBUG
            XrmPackageSettings.SolutionDynamicsCrmPrefix = "template";
            XrmPackageSettings.SolutionObjectPrefix      = "Template";
            #endif

            var container             = new PrismDependencyContainer(new UnityContainer());
            var applicationController = new VsixApplicationController(container);
            if (replacementsDictionary.ContainsKey("$specifiedsolutionname$") && (replacementsDictionary["$specifiedsolutionname$"] == null || replacementsDictionary["$specifiedsolutionname$"] == ""))
            {
                applicationController.UserMessage("Warning! The XRM Solution Generation Will Not Work Correctly If Create Directory For Solution Was Not Specified In The New Solution Dialog");
            }


            RunWizardSettingsEntry(XrmPackageSettings, applicationController);

            //add token replacements for the template projects
            AddReplacements(replacementsDictionary, XrmPackageSettings);

            //used later
            DestinationDirectory = replacementsDictionary["$destinationdirectory$"];
            SafeProjectName      = replacementsDictionary["$safeprojectname$"];
        }
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            //load an application with the module buttons and fake things to spawn the vsix dialogs

            var container = new PrismDependencyContainer(new UnityContainer());

            var applicationName = "Vsix Test Shell";

            var settingsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
                                              "JosephM Xrm", applicationName);
            var visualStudioService = new FakeVisualStudioService(solutionDirectory: settingsFolder);

            container.RegisterInstance(typeof(IVisualStudioService), visualStudioService);

            var applicationController = new VsixApplicationController(container, applicationName: applicationName);

            VsixApplication = new VsixApplication(applicationController, new VsixSettingsManager(visualStudioService), new Guid("43816e6d-4db8-48d6-8bfa-75916cb080f0"));

            VsixApplication.AddModule <OpenWebModule>();
            VsixApplication.AddModule <DeployAssemblyModule>();
            VsixApplication.AddModule <ManagePluginTriggersModule>();
            VsixApplication.AddModule <XrmCrudModule>();
            VsixApplication.AddModule <TestDialogModule>();
        }
 public VsixApplication(VsixApplicationController applicationController, ISettingsManager settingsManager, Guid commandSetId)
     : base(applicationController, new ApplicationOptionsViewModel(applicationController), settingsManager)
 {
     CommandSetId    = commandSetId;
     ApplicationName = applicationController.ApplicationName;
     Controller.RegisterType <IDialogController, DialogController>();
 }
示例#4
0
        public static VsixApplication Create(IVisualStudioService visualStudioService, IDependencyResolver dependencyResolver, string applicationName, Guid commandSetId, bool isWizardContext = false)
        {
            var applicationController = new VsixApplicationController(dependencyResolver, applicationName);
            var vsixSettingsManager   = new VsixSettingsManager(visualStudioService, new DesktopSettingsManager(applicationController));
            var app = new VsixApplication(applicationController, vsixSettingsManager, commandSetId, isWizardContext);

            return(app);
        }
示例#5
0
 public VsixApplication(VsixApplicationController applicationController, ISettingsManager settingsManager, Guid commandSetId, bool isWizardContext)
     : base(applicationController, new ApplicationOptionsViewModel(applicationController), settingsManager)
 {
     VsixApplicationController = applicationController;
     CommandSetId    = commandSetId;
     IsWizardContext = isWizardContext;
     ApplicationName = applicationController.ApplicationName;
     Controller.RegisterType <IDialogController, DialogController>();
 }
示例#6
0
        public override void RunStartedExtention(Dictionary <string, string> replacementsDictionary)
        {
            //get a xrm connection and package setting by loading the entry dialogs
            XrmPackageSettings = new XrmPackageSettings();
            #if DEBUG
            XrmPackageSettings.SolutionDynamicsCrmPrefix = "template";
            XrmPackageSettings.SolutionObjectPrefix      = "Template";
            #endif

            var container             = new PrismDependencyContainer(new UnityContainer());
            var applicationController = new VsixApplicationController(container);
            RunWizardSettingsEntry(XrmPackageSettings, applicationController);

            //add token replacements for the template projects
            AddReplacements(replacementsDictionary, XrmPackageSettings);

            //used later
            DestinationDirectory = replacementsDictionary["$destinationdirectory$"];
            SafeProjectName      = replacementsDictionary["$safeprojectname$"];
        }
示例#7
0
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            var container = new DependencyContainer();

            var commandService = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;

            container.RegisterInstance(typeof(IMenuCommandService), commandService);


            var dte = GetService(typeof(SDTE)) as DTE2;
            var visualStudioService = new VisualStudioService(dte);

            container.RegisterInstance(typeof(IVisualStudioService), visualStudioService);

            var applicationController = new VsixApplicationController(container);
            var app = new VsixApplication(applicationController, new VsixSettingsManager(visualStudioService), new Guid("43816e6d-4db8-48d6-8bfa-75916cb080f0"));

            app.AddModule <OpenWebModule>(0x010B);
            app.AddModule <OpenSolutionModule>(0x010C);
            app.AddModule <OpenAdvancedFindModule>(0x010D);
            app.AddModule <ClearCacheModule>(0x0109);
            app.AddModule <XrmCrudModule>(0x0112);
            app.AddModule <InstanceComparerModule>(0x0111);
            app.AddModule <UpdateAssemblyModule>(0x0105);
            app.AddModule <XrmPackageSettingsModule>(0x0106);
            app.AddModule <DeployAssemblyModule>(0x0103);
            app.AddModule <ManagePluginTriggersModule>(0x0104);
            app.AddModule <VsixCustomisationImportModule>(0x010A);
            app.AddModule <VsixCreatePackageModule>(0x010E);
            app.AddModule <RefreshSchemaModule>(0x0100);
            app.AddModule <DeployWebResourceModule>(0x0102);
            app.AddModule <VsixImportCsvsModule>(0x0108);
            app.AddModule <VsixDeployPackageModule>(0x0110);
            app.AddModule <XrmTextSearchModule>(0x0116);
            app.AddModule <XrmPackageAboutModule>(0x0113);
            app.AddModule <ImportSolutionModule>(0x0114);
            app.AddModule <ImportRecordsModule>(0x0115);
            app.AddModule <DeployIntoFieldModule>(0x0117);
        }
        public static void RunWizardSettingsEntry(XrmPackageSettings packageSettings, VsixApplicationController applicationController)
        {
            //ensure the package settings resolves when the app settings dialog runs
            var resolvePackageSettings = applicationController.ResolveType(typeof(XrmPackageSettings));

            if (resolvePackageSettings == null)
            {
                applicationController.RegisterInstance(typeof(XrmPackageSettings), new XrmPackageSettings());
            }

            var settingsDialog = new XrmPackageSettingsDialog(new DialogController(applicationController), packageSettings, null, new XrmRecordService(new XrmRecordConfiguration(), formService: new XrmFormService()));

            settingsDialog.SaveSettings = false;
            var uriQuery = new UriQuery();

            uriQuery.Add("Modal", true.ToString());
            applicationController.RequestNavigate("Main", settingsDialog, uriQuery, showCompletionScreen: false, isModal: true);
        }
        public static void RunWizardSettingsEntry(XrmPackageSettings packageSettings, VsixApplicationController applicationController, string solutionName)
        {
            //ensure the package settings resolves when the app settings dialog runs
            var resolvePackageSettings = applicationController.ResolveType(typeof(XrmPackageSettings));

            if (resolvePackageSettings == null)
            {
                applicationController.RegisterInstance(typeof(XrmPackageSettings), new XrmPackageSettings());
            }

            if (solutionName != null && string.IsNullOrWhiteSpace(packageSettings.SolutionObjectPrefix))
            {
                packageSettings.SolutionObjectPrefix = solutionName.Split('.').First();
            }

            var settingsDialog = new XrmPackageSettingsDialog(new DialogController(applicationController), packageSettings, null, new XrmRecordService(new XrmRecordConfiguration(), formService: new XrmFormService()), saveButtonLabel: "Next");

            settingsDialog.SaveSettings = false;
            var uriQuery = new UriQuery();

            uriQuery.Add("Modal", true.ToString());
            applicationController.NavigateTo(settingsDialog, uriQuery, showCompletionScreen: false, isModal: true);
        }