/// <summary> /// Initializes a new instance of <see cref="EnvironmentNode"/> given a <see cref="EnvironmentMergeData"/> instance. /// </summary> /// <param name="environmentData">The <see cref="EnvironmentMergeData"/> that contains the information for this environemnt.</param> public EnvironmentNode(EnvironmentMergeData environmentData) : base(environmentData.EnvironmentName) { this.environmentData = environmentData; this.environmentDeltaFile = environmentData.EnvironmentDeltaFile; this.environmentConfigurationFile = environmentData.EnvironmentConfigurationFile; }
EnvironmentMergeData ReadEnvironmentMergeData(EnvironmentMergeSection environmentSection, IConfigurationUIHierarchy configurationHierarchy) { EnvironmentMergeData mergeData = new EnvironmentMergeData(); foreach (EnvironmentNodeMergeElement mergeElement in environmentSection.MergeElements) { ConfigurationNodeMergeData propertyDictionaty = new ConfigurationNodeMergeData(); foreach (string key in mergeElement.OverriddenProperties.AllKeys) { string overriddenValue = mergeElement.OverriddenProperties[key].Value; propertyDictionaty.SetPropertyValue(key, new UnserializedPropertyValue(overriddenValue)); } ConfigurationNodeMergeData configurationNodeMergeData = new ConfigurationNodeMergeData(mergeElement.OverrideProperties, propertyDictionaty); string fullNodePath = configurationHierarchy.RootNode.Path + mergeElement.ConfigurationNodePath; ConfigurationNode node = configurationHierarchy.FindNodeByPath(fullNodePath); if (node != null) { mergeData.UpdateMergeData(node, configurationNodeMergeData); } } return mergeData; }