internal ConfigurationLockCollection UnMergeLockList(ConfigurationLockCollection sourceLockList, ConfigurationLockCollection parentLockList, ConfigurationSaveMode saveMode)
{
if (!sourceLockList.ExceptionList)
{
switch (saveMode)
{
case ConfigurationSaveMode.Modified:
{
ConfigurationLockCollection locks = new ConfigurationLockCollection(this, sourceLockList.LockType);
foreach (string str in sourceLockList)
{
if (!parentLockList.Contains(str) || sourceLockList.IsValueModified(str))
{
locks.Add(str, ConfigurationValueFlags.Default);
}
}
return locks;
}
case ConfigurationSaveMode.Minimal:
{
ConfigurationLockCollection locks2 = new ConfigurationLockCollection(this, sourceLockList.LockType);
foreach (string str2 in sourceLockList)
{
if (!parentLockList.Contains(str2))
{
locks2.Add(str2, ConfigurationValueFlags.Default);
}
}
return locks2;
}
}
return sourceLockList;
}
if ((saveMode == ConfigurationSaveMode.Modified) || (saveMode == ConfigurationSaveMode.Minimal))
{
bool flag = false;
if (sourceLockList.Count == parentLockList.Count)
{
flag = true;
foreach (string str3 in sourceLockList)
{
if (!parentLockList.Contains(str3) || (sourceLockList.IsValueModified(str3) && (saveMode == ConfigurationSaveMode.Modified)))
{
flag = false;
}
}
}
if (flag)
{
return null;
}
}
return sourceLockList;
}