public virtual void ExecuteCommand(object sender, EventArgs args) { IVsUIShell uiShell = projectManager.UIShell; uiShell.EnableModeless(0); try { string projectConfigPath = projectManager.ProjectConfigPath; projectConfigurationManager.Load(projectConfigPath); UpdateProjectConfiguration(projectConfigurationManager.CurrentProjectConfiguraiton, projectManager); projectConfigurationManager.Save(projectConfigPath); bool saved = projectManager.SaveDirtyFiles(dialogFactory, projectConfigurationManager.CurrentProjectConfiguraiton.MethodInfos); if (saved) { ExecuteCommandImpl(sender, args); } } catch (Exception ex) { var messageWindow = dialogFactory.GetMessageBoxWindow(); messageWindow.ShowDialog(ex.Message, messageManager.GetMessage("ArasVSMethodPlugin"), MessageButtons.OK, MessageIcon.Error); } finally { uiShell.EnableModeless(1); } }
public void OpenMethodFromAras(string openRequestString) { OpenMethodContext openContext = openContextParser.Parse(openRequestString); if (openContext == null) { return; } IMessageBoxWindow messageBox = dialogFactory.GetMessageBoxWindow(); MessageDialogResult result = messageBox.ShowDialog(messageManager.GetMessage("CreateNewOrOpenExistingProject"), messageManager.GetMessage("ArasVSMethodPlugin"), MessageButtons.YesNo, MessageIcon.Question); if (result == MessageDialogResult.Yes) { projectManager.ExecuteCommand("File.NewProject"); } else { projectManager.ExecuteCommand("File.OpenProject"); } if (projectManager.SolutionHasProject && projectManager.IsArasProject) { Commands.OpenFromArasCmd.Instance.ExecuteCommand(this, openContext); } }
public virtual void ExecuteCommand(object sender, EventArgs args) { try { string projectConfigPath = projectManager.ProjectConfigPath; var projectConfiguration = projectConfigurationManager.Load(projectConfigPath); projectConfiguration.Update(projectManager); projectConfigurationManager.Save(projectConfigPath, projectConfiguration); bool saved = projectManager.SaveDirtyFiles(projectConfiguration.MethodInfos); if (saved) { ExecuteCommandImpl(sender, args); } } catch (Exception ex) { var messageWindow = dialogFactory.GetMessageBoxWindow(); messageWindow.ShowDialog(ex.Message, "Aras VS method plugin", MessageButtons.OK, MessageIcon.Error); } }
public bool SaveDirtyFiles(IDialogFactory dialogFactory, List <MethodInfo> methodInfos) { string serverMethodFolderPath = ServerMethodFolderPath; bool saveIsApproved = false; foreach (MethodInfo methodInfo in methodInfos) { string packageMethodFolderPath = this.projectConfigurationManager.CurrentProjectConfiguraiton.UseCommonProjectStructure ? methodInfo.Package.MethodFolderPath : string.Empty; string methodWorkingFolder = Path.Combine(serverMethodFolderPath, packageMethodFolderPath, methodInfo.MethodName); List <string> methodPaths = iOWrapper.DirectoryGetFiles(methodWorkingFolder, $"*{GlobalConsts.CSExtension}", SearchOption.AllDirectories) .Select(x => x.Substring(serverMethodFolderPath.Length)) .ToList(); foreach (string methodPath in methodPaths) { ProjectItem fileProjectItem = LoadItemFolder(methodPath); if (fileProjectItem != null && fileProjectItem.IsDirty) { if (saveIsApproved) { fileProjectItem.Save(); } else { var messageWindow = dialogFactory.GetMessageBoxWindow(); var messageDialogResult = messageWindow.ShowDialog( messageManager.GetMessage("OneOrMoreMethodFilesIsNotSavedDoYouWantToSaveChanges"), messageManager.GetMessage("ArasVSMethodPlugin"), MessageButtons.YesNoCancel, MessageIcon.Question); if (messageDialogResult == MessageDialogResult.Yes) { saveIsApproved = true; fileProjectItem.Save(); } else if (messageDialogResult == MessageDialogResult.No) { return(true); } else if (messageDialogResult == MessageDialogResult.Cancel) { return(false); } } } } } return(true); }
public bool SaveDirtyFiles(List <MethodInfo> methodInfos) { bool saveIsApproved = false; foreach (MethodInfo methodInfo in methodInfos) { var methodPaths = new List <string>(); methodPaths.Add(methodInfo.MethodName + "\\" + methodInfo.MethodName); methodPaths.AddRange(methodInfo.PartialClasses); methodPaths.AddRange(methodInfo.ExternalItems); foreach (string methodPath in methodPaths) { ProjectItem fileProjectItem = LoadItemFolder(methodPath); if (fileProjectItem != null && fileProjectItem.IsDirty) { if (saveIsApproved) { fileProjectItem.Save(); } else { var messageWindow = dialogFactory.GetMessageBoxWindow(); var messageDialogResult = messageWindow.ShowDialog( "One or more method files is not saved. Do you want to save changes?", "Aras VS method plugin", MessageButtons.YesNoCancel, MessageIcon.Question); if (messageDialogResult == MessageDialogResult.Yes) { saveIsApproved = true; fileProjectItem.Save(); } else if (messageDialogResult == MessageDialogResult.No) { return(true); } else if (messageDialogResult == MessageDialogResult.Cancel) { return(false); } } } } } return(true); }