Пример #1
0
        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)");
            }
        }
Пример #2
0
 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)));
 }
Пример #3
0
 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);
		}
Пример #5
0
 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);
		}