Example #1
0
        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);
                    }
                }
            }
        }
Example #2
0
        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);
        }