ConfigDefinitionUpdates
using System.Collections;
namespace System.Configuration
{
internal sealed class ConfigDefinitionUpdates
{
internal ArrayList LocationUpdatesList { get; }
internal bool RequireLocation { get; set; }
internal ConfigDefinitionUpdates()
{
LocationUpdatesList = new ArrayList();
}
internal LocationUpdates FindLocationUpdates(OverrideModeSetting overrideMode, bool inheritInChildApps)
{
foreach (LocationUpdates locationUpdates in LocationUpdatesList) {
if (OverrideModeSetting.CanUseSameLocationTag(locationUpdates.OverrideMode, overrideMode) && locationUpdates.InheritInChildApps == inheritInChildApps)
return locationUpdates;
}
return null;
}
internal DefinitionUpdate AddUpdate(OverrideModeSetting overrideMode, bool inheritInChildApps, bool moved, string updatedXml, SectionRecord sectionRecord)
{
LocationUpdates locationUpdates = FindLocationUpdates(overrideMode, inheritInChildApps);
if (locationUpdates == null) {
locationUpdates = new LocationUpdates(overrideMode, inheritInChildApps);
LocationUpdatesList.Add(locationUpdates);
}
DefinitionUpdate definitionUpdate = new DefinitionUpdate(sectionRecord.ConfigKey, moved, updatedXml, sectionRecord);
locationUpdates.SectionUpdates.AddSection(definitionUpdate);
return definitionUpdate;
}
internal void CompleteUpdates()
{
foreach (LocationUpdates locationUpdates in LocationUpdatesList) {
locationUpdates.CompleteUpdates();
}
}
internal void FlagLocationWritten()
{
RequireLocation = false;
}
}
}