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>(); }
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); }
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>(); }
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$"]; }
/// <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); }