/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private async void Execute(object sender, EventArgs e) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); await ChangeCommandStatusAsync(menuCommandID, false); // Get the file path uint itemid; IVsHierarchy hierarchy; if (!IsSingleProjectItemSelection(out hierarchy, out itemid)) { return; } string ramlFilePath; ((IVsProject)hierarchy).GetMkDocument(itemid, out ramlFilePath); var refFilePath = InstallerServices.GetRefFilePath(ramlFilePath); var editorModel = new RamlPropertiesEditorViewModel(); editorModel.Load(refFilePath, RAML.Tools.Properties.Settings.Default.ContractsFolderName, RAML.Tools.Properties.Settings.Default.ApiReferencesFolderName); AMFToolsPackage.WindowManager.ShowDialog(editorModel); //var frm = new RamlPropertiesEditor(); //frm.Load(refFilePath, RAML.Tools.Properties.Settings.Default.ContractsFolderName, RAML.Tools.Properties.Settings.Default.ApiReferencesFolderName); //var result = frm.ShowDialog(); if (editorModel.WasSaved) { if (IsServerSide(ramlFilePath)) { var ramlScaffoldUpdater = RamlScaffoldServiceBase.GetRamlScaffoldService(Microsoft.VisualStudio.Shell.ServiceProvider.GlobalProvider); ramlScaffoldUpdater.UpdateRaml(ramlFilePath); } else { var templatesManager = new TemplatesManager(); var ramlFolder = Path.GetDirectoryName(ramlFilePath).TrimEnd(Path.DirectorySeparatorChar); var generatedFolderPath = ramlFolder.Substring(0, ramlFolder.LastIndexOf(Path.DirectorySeparatorChar) + 1); if (!templatesManager.ConfirmWhenIncompatibleClientTemplate(generatedFolderPath)) { return; } await RegenerateClientCodeAsync(ramlFilePath); } } await ChangeCommandStatusAsync(menuCommandID, true); }
private void EditRamlPropertiesCallback(object sender, EventArgs e) { ChangeCommandStatus(editRamlPropertiesCmdId, false); // Get the file path uint itemid; IVsHierarchy hierarchy; if (!IsSingleProjectItemSelection(out hierarchy, out itemid)) { return; } string ramlFilePath; ((IVsProject)hierarchy).GetMkDocument(itemid, out ramlFilePath); var refFilePath = InstallerServices.GetRefFilePath(ramlFilePath); var editorModel = new RamlPropertiesEditorViewModel(); editorModel.Load(refFilePath, Settings.Default.ContractsFolderName, Settings.Default.ApiReferencesFolderName); windowManager.ShowDialog(editorModel); //var frm = new RamlPropertiesEditor(); //frm.Load(refFilePath, Settings.Default.ContractsFolderName, Settings.Default.ApiReferencesFolderName); //var result = frm.ShowDialog(); if (editorModel.WasSaved) { if (IsServerSide(ramlFilePath)) { var ramlScaffoldUpdater = new RamlScaffoldService(new T4Service(ServiceProvider.GlobalProvider), ServiceProvider.GlobalProvider); ramlScaffoldUpdater.UpdateRaml(ramlFilePath); } else { var templatesManager = new TemplatesManager(); var ramlFolder = Path.GetDirectoryName(ramlFilePath).TrimEnd(Path.DirectorySeparatorChar); var generatedFolderPath = ramlFolder.Substring(0, ramlFolder.LastIndexOf(Path.DirectorySeparatorChar) + 1); if (!templatesManager.ConfirmWhenIncompatibleClientTemplate(generatedFolderPath)) { return; } var dte = (DTE2)GetService(typeof(SDTE)); dte.ExecuteCommand("Project.RunCustomTool"); } } ChangeCommandStatus(editRamlPropertiesCmdId, true); }