public async Task MultiRunConfig_ReloadProject_ProjectRunConfigUpdatedInMultiRunConfig() { string solFile = Util.GetSampleProject("test-multi-run-config-reload", "test-multi-run-config-reload.sln"); using (var sol = (Solution)await Services.ProjectService.ReadWorkspaceItem(Util.GetMonitor(), solFile)) { var projectA = (DotNetProject)sol.FindProjectByName("ProjectA"); var projectB = (DotNetProject)sol.FindProjectByName("ProjectB"); Assert.IsNotNull(projectA); Assert.IsNotNull(projectB); var multiRunConfig = new MultiItemSolutionRunConfiguration("MultiTestId", "multi"); var startupItem1 = new StartupItem(projectA, projectA.RunConfigurations.Single()); multiRunConfig.Items.Add(startupItem1); var startupItem2 = new StartupItem(projectB, projectB.RunConfigurations.Single()); multiRunConfig.Items.Add(startupItem2); sol.MultiStartupRunConfigurations.Add(multiRunConfig); await sol.RootFolder.ReloadItem(Util.GetMonitor(), projectA); // Ensure latest project instance is used by getting them from the solution again. projectA = (DotNetProject)sol.FindProjectByName("ProjectA"); projectB = (DotNetProject)sol.FindProjectByName("ProjectB"); var runConfigA = multiRunConfig.Items.Single(item => item.SolutionItem == projectA); Assert.AreEqual(projectA.RunConfigurations.Single(), runConfigA.RunConfiguration, "Multi-run config does not match project's run config (ProjectA)"); var runConfigB = multiRunConfig.Items.Single(item => item.SolutionItem == projectB); Assert.AreEqual(projectB.RunConfigurations.Single(), runConfigB.RunConfiguration, "Multi-run config does not match project's run config (ProjectB)"); } }
public MultiItemSolutionRunConfiguration(MultiItemSolutionRunConfiguration other, string newName = null) : base(newName ?? other.Id, newName ?? other.Name) { Items = new StartupItemCollection(); Items.AddRange(other.Items.Select(it => new StartupItem(it.SolutionItem, it.RunConfiguration))); }
public void CopyFrom(MultiItemSolutionRunConfiguration other) { Items.Clear(); Items.AddRange(other.Items.Select(it => new StartupItem(it.SolutionItem, it.RunConfiguration))); OnRunConfigurationsChanged(); }
internal void RemoveConfiguration (MultiItemSolutionRunConfiguration editedConfig) { var c = configs.First (ci => ci.EditedConfig == editedConfig); configs.Remove (c); RemovePanel (c); }
internal StartupItemCollection(MultiItemSolutionRunConfiguration parent) { this.parent = parent; }
void OnRenameConfiguration (object sender, EventArgs e) { var config = (MultiItemSolutionRunConfiguration)list.SelectedConfiguration; var okCommand = new Command (GettextCatalog.GetString ("Rename")); using (var dlg = new RunConfigurationNameDialog (ParentWindow, config.Name, okCommand, panel.Configurations.Select (c => c.EditedConfig.Name))) { dlg.Title = GettextCatalog.GetString ("Rename Configuration"); if (dlg.Run () != Command.Cancel) { var copy = new MultiItemSolutionRunConfiguration (config, dlg.NewName); panel.ReplaceConfiguration (config, copy); Fill (); } } }
void OnAddConfiguration (object sender, EventArgs e) { var okCommand = new Command (GettextCatalog.GetString ("Create")); using (var dlg = new RunConfigurationNameDialog (ParentWindow, "", okCommand, panel.Configurations.Select (c => c.EditedConfig.Name))) { dlg.Title = GettextCatalog.GetString ("New Configuration"); if (dlg.Run () == okCommand) { var config = new MultiItemSolutionRunConfiguration (dlg.NewName, dlg.NewName); panel.AddConfiguration (config); Fill (); } } }
internal void ShowConfiguration (MultiItemSolutionRunConfiguration editedConfig) { var rc = configs.First (ci => ci.EditedConfig == editedConfig); var section = sections [rc]; ParentDialog.ShowPage (section); }
internal void ReplaceConfiguration (MultiItemSolutionRunConfiguration oldConf, MultiItemSolutionRunConfiguration newConf) { var i = configs.FindIndex (ci => ci.EditedConfig == oldConf); var oldc = configs [i]; var newc = new SolutionRunConfigInfo { EditedConfig = newConf }; configs [i] = newc; RemovePanel (oldc); AddPanel (newc); }
internal void AddConfiguration (MultiItemSolutionRunConfiguration editedConfig) { var c = new SolutionRunConfigInfo { EditedConfig = editedConfig }; configs.Add (c); AddPanel (c); }