public IXPathNavigable AddRunSettings(IXPathNavigable userRunSettingDocument, IRunSettingsConfigurationInfo configurationInfo, ILogger logger) { XPathNavigator userRunSettingsNavigator = userRunSettingDocument.CreateNavigator(); Debug.Assert(userRunSettingsNavigator != null, "userRunSettingsNavigator == null!"); if (!userRunSettingsNavigator.MoveToChild("RunSettings", "")) { logger.Log(MessageLevel.Warning, "RunSettingsDocument does not contain a RunSettings node! Canceling settings merging..."); return(userRunSettingsNavigator); } var finalRunSettings = new RunSettings(); if (CopyToUnsetValues(userRunSettingsNavigator, finalRunSettings)) { userRunSettingsNavigator.DeleteSelf(); // this node is to be replaced by the final run settings } string solutionRunSettingsFile = GetSolutionSettingsXmlFile(); try { if (File.Exists(solutionRunSettingsFile)) { var solutionRunSettingsDocument = new XPathDocument(solutionRunSettingsFile); XPathNavigator solutionRunSettingsNavigator = solutionRunSettingsDocument.CreateNavigator(); if (solutionRunSettingsNavigator.MoveToChild("RunSettings", "")) { CopyToUnsetValues(solutionRunSettingsNavigator, finalRunSettings); } } } catch (Exception e) { logger.Log(MessageLevel.Warning, $"Solution test settings file could not be parsed, check file: {solutionRunSettingsFile}"); logger.LogException(e); } finalRunSettings.GetUnsetValuesFrom(globalRunSettings.RunSettings); userRunSettingsNavigator.AppendChild(finalRunSettings.ToXml().CreateNavigator()); userRunSettingsNavigator.MoveToRoot(); return(userRunSettingsNavigator); }
public IXPathNavigable AddRunSettings(IXPathNavigable userRunSettingDocument, IRunSettingsConfigurationInfo configurationInfo, ILogger logger) { XPathNavigator userRunSettingsNavigator = userRunSettingDocument.CreateNavigator(); Debug.Assert(userRunSettingsNavigator != null, "userRunSettingsNavigator == null!"); if (!userRunSettingsNavigator.MoveToChild("RunSettings", "")) { logger.Log(MessageLevel.Warning, "RunSettingsDocument does not contain a RunSettings node! Canceling settings merging..."); return userRunSettingsNavigator; } var finalRunSettings = new RunSettings(); if (CopyToUnsetValues(userRunSettingsNavigator, finalRunSettings)) { userRunSettingsNavigator.DeleteSelf(); // this node is to be replaced by the final run settings } string solutionRunSettingsFile = GetSolutionSettingsXmlFile(); try { if (File.Exists(solutionRunSettingsFile)) { var solutionRunSettingsDocument = new XPathDocument(solutionRunSettingsFile); XPathNavigator solutionRunSettingsNavigator = solutionRunSettingsDocument.CreateNavigator(); if (solutionRunSettingsNavigator.MoveToChild("RunSettings", "")) { CopyToUnsetValues(solutionRunSettingsNavigator, finalRunSettings); } } } catch (Exception e) { logger.Log(MessageLevel.Warning, $"Solution test settings file could not be parsed, check file: {solutionRunSettingsFile}"); logger.LogException(e); } finalRunSettings.GetUnsetValuesFrom(_globalRunSettings.RunSettings); userRunSettingsNavigator.AppendChild(finalRunSettings.ToXml().CreateNavigator()); userRunSettingsNavigator.MoveToRoot(); return userRunSettingsNavigator; }