private void Button_Confirm_Click(object sender, RoutedEventArgs e)
        {
            string origianlName = this.testProject.Name;

            this.testProject.Name              = this.TextBoxTestProjectName.Text;
            this.testProject.TestTarget        = this.TextBoxTestTargetName.Text;
            this.testProject.TestTargetVersion = this.TextBoxTestTargetVersion.Text;

            Dictionary <string, object> dict = new Dictionary <string, object>();

            foreach (TestRunParameter pair in this.listBoxKeyValuePair.Items)
            {
                dict.Add(pair.Name, pair.Value);
            }

            TestRunParameters.SaveTestRunParameters(dict, this.runsettingsFile);

            if (origianlName != this.testProject.Name)
            {
                IConfigurationManager configuration = (App.Current as App).Container.GetService <IConfigurationManager>();
                this.testProject.Rename(origianlName, configuration.GetConfigValue(Constants.DefaultRunsettingsFile), configuration.GetEncoding());
            }

            this.DialogResult = true;

            this.Close();
        }
        public static void SaveToFile(this TestProjectInfo project, string defaultRunsettingsFile, Encoding encoding)
        {
            if (!Directory.Exists(project.Location))
            {
                Directory.CreateDirectory(project.Location);
            }

            string output  = TestProjectInfo.Serialize(project);
            string srcFile = Path.Combine(project.Location, project.Name + Constants.TestProjectFileTypeExtension);

            File.WriteAllText(srcFile, output, encoding);
            string runsettingsFile = Path.Combine(project.Location, project.Name + Constants.TestRunSettingFileTypeExtesion);

            if (!File.Exists(runsettingsFile))
            {
                File.Copy(defaultRunsettingsFile, runsettingsFile, true);
            }

            string xml = File.ReadAllText(runsettingsFile);
            Dictionary <string, object> dict           = VsualStudioTP.XmlRunSettingsUtilities.GetTestRunParameters(xml);
            IEnumerable <string>        testAssemblies = (from r in project.TestMethods select r.Source).Distinct(StringComparer.InvariantCultureIgnoreCase);

            foreach (string assembly in testAssemblies)
            {
                DirectoryInfo root = new DirectoryInfo(Path.GetDirectoryName(assembly));
                if (!root.Exists)
                {
                    continue;
                }
                foreach (FileInfo info in root.GetFiles(Constants.TestRunSettingFileTypePattern))
                {
                    xml = File.ReadAllText(info.FullName);
                    Dictionary <string, object> tmp = VsualStudioTP.XmlRunSettingsUtilities.GetTestRunParameters(xml);
                    foreach (KeyValuePair <string, object> keyValue in tmp)
                    {
                        if (dict.ContainsKey(keyValue.Key))
                        {
                            continue;
                        }

                        dict.Add(keyValue.Key, keyValue.Value);
                    }

                    TestRunParameters.AddLegacyNodes(xml, runsettingsFile);
                }
            }

            TestRunParameters.SaveTestRunParameters(dict, runsettingsFile);
        }