public void Import(UserConfig importUserConfig, bool overwriteSettings) { if (importUserConfig == null) { throw new ArgumentNullException("importUserConfig"); } foreach (ConfigurationSectionGroup _importSectionGroup in importUserConfig.m_configuration.SectionGroups) { UserSettingsGroup _importUserSettingsGroup = _importSectionGroup as UserSettingsGroup; if (_importUserSettingsGroup == null) { continue; } UserSettingsGroup _userSettingsGroup = m_configuration.SectionGroups[_importSectionGroup.Name] as UserSettingsGroup; if (_userSettingsGroup == null) { _userSettingsGroup = new UserSettingsGroup(); m_configuration.SectionGroups.Add(_importSectionGroup.Name, _userSettingsGroup); } foreach (ConfigurationSection importSection in _importSectionGroup.Sections) { ClientSettingsSection _importClientSettingsSection = importSection as ClientSettingsSection; if (_importClientSettingsSection == null) { continue; } ClientSettingsSection _clientSettingsSection = _userSettingsGroup.Sections[importSection.SectionInformation.Name] as ClientSettingsSection; if (_clientSettingsSection == null) { _clientSettingsSection = new ClientSettingsSection(); _userSettingsGroup.Sections.Add(importSection.SectionInformation.Name, _clientSettingsSection); } foreach (SettingElement _importSettingElement in _importClientSettingsSection.Settings) { bool _newSetting = false; SettingElement _settingElement = _clientSettingsSection.Settings.Get(_importSettingElement.Name); if (_settingElement == null) { _newSetting = true; _settingElement = new SettingElement(); _settingElement.Name = _importSettingElement.Name; _settingElement.SerializeAs = _importSettingElement.SerializeAs; _clientSettingsSection.Settings.Add(_settingElement); } if (!_newSetting && !overwriteSettings) { continue; } SettingValueElement _settingValueElement = new SettingValueElement(); _settingValueElement.ValueXml = _importSettingElement.Value.ValueXml; _settingElement.SerializeAs = _importSettingElement.SerializeAs; _settingElement.Value = _settingValueElement; _clientSettingsSection.Settings.Add(_settingElement); } } } }
public bool HasSameSettings(UserConfig compareUserConfig) { if (compareUserConfig == null) { throw new ArgumentNullException("compareUserConfig"); } if (m_configuration.SectionGroups.Count != compareUserConfig.m_configuration.SectionGroups.Count) { return(false); } foreach (ConfigurationSectionGroup _compareSectionGroup in compareUserConfig.m_configuration.SectionGroups) { UserSettingsGroup _compareUserSettingsGroup = _compareSectionGroup as UserSettingsGroup; if (_compareUserSettingsGroup == null) { continue; } UserSettingsGroup _userSettingsGroup = m_configuration.SectionGroups[_compareSectionGroup.Name] as UserSettingsGroup; if (_userSettingsGroup == null || _userSettingsGroup.Sections.Count != _compareSectionGroup.Sections.Count) { return(false); } foreach (ConfigurationSection _compareSection in _compareSectionGroup.Sections) { ClientSettingsSection _compareClientSettingsSection = _compareSection as ClientSettingsSection; if (_compareClientSettingsSection == null) { continue; } ClientSettingsSection _clientSettingsSection = _userSettingsGroup.Sections[_compareSection.SectionInformation.Name] as ClientSettingsSection; if (_clientSettingsSection == null || _clientSettingsSection.Settings.Count != _compareClientSettingsSection.Settings.Count) { return(false); } foreach (SettingElement _compateSettingElement in _compareClientSettingsSection.Settings) { SettingElement _settingElement = _clientSettingsSection.Settings.Get(_compateSettingElement.Name); if (_settingElement == null || !_settingElement.Value.ValueXml.InnerXml.Equals(_compateSettingElement.Value.ValueXml.InnerXml)) { return(false); } } } } return(true); }