public IContext LoadContext(Type contextType) { JsonInit.InitConverter(); IConfigProvider configProvider = Provider.Get(); IConfigSection section = configProvider.LoadSingleSetting(SectionId, contextType.FullName); if (section.ContainsSetting(contextType.FullName)) { var jsonString = section.GetSetting <string>(contextType.FullName, null).Value; try { if (!string.IsNullOrEmpty(jsonString)) { return((IContext)JsonConvert.DeserializeObject(jsonString, contextType)); } return(null); } catch (JsonSerializationException e) { throw new JsonSerializationException(string.Format("Error deserializing type {0}", contextType), e); } } return(null); }
private static T GetSetting <T>(string settingName) { if (Section.ContainsSetting(settingName)) { return(Section.GetSetting(settingName, default(T), false).Value); } throw new HelpProviderException( "Setting '{0}' in section [{1}] does not exist. Please create this setting in settings.", settingName, SectionId); }
/// <summary> /// Migrates settings values /// </summary> public void MigrateSettingValues() { IConfigProvider configProvider = Provider.Get(); IConfigSection section = configProvider.LoadSection(_sectionId); foreach (SettingsProperty oldSetting in _oldSettings.Properties) { Debug.Assert(section.ContainsSetting(oldSetting.Name), string.Format("Setting {0} existiert nicht", oldSetting.Name)); if (section.ContainsSetting(oldSetting.Name)) { if (oldSetting.PropertyType == typeof(string)) { section.GetSetting <string>(oldSetting.Name).Value = (string)_oldSettings[oldSetting.Name]; } else if (oldSetting.PropertyType == typeof(bool)) { section.GetSetting <bool>(oldSetting.Name).Value = (bool)_oldSettings[oldSetting.Name]; } else if (oldSetting.PropertyType == typeof(int)) { section.GetSetting <int>(oldSetting.Name).Value = (int)_oldSettings[oldSetting.Name]; } else if (oldSetting.PropertyType == typeof(decimal)) { section.GetSetting <decimal>(oldSetting.Name).Value = (decimal)_oldSettings[oldSetting.Name]; } else if (oldSetting.PropertyType == typeof(float)) { section.GetSetting <float>(oldSetting.Name).Value = (float)_oldSettings[oldSetting.Name]; } else if (oldSetting.PropertyType == typeof(Color)) { section.GetSetting <Color>(oldSetting.Name).Value = (Color)_oldSettings[oldSetting.Name]; } } } configProvider.SaveSection(section); }
public virtual bool HasLayout(string layoutName) { Debug.Assert(HostForm != null, "HostForm is null"); Debug.Assert(LayoutNameInternal != null, "_layoutName is null"); string sectionId = GetLayoutSectionId(); string layoutId = GetLayoutId(layoutName); IConfigProvider configProvider = Provider.Get(); IConfigSection section = configProvider.LoadSingleSetting(sectionId, layoutId); bool hasLayout = section.ContainsSetting(layoutId); return(hasLayout); }
public virtual void ResetLayout() { Debug.Assert(HostForm != null, "HostForm is null"); Debug.Assert(LayoutNameInternal != null, "_layoutName is null"); string sectionId = GetLayoutSectionId(); string layoutId = GetLayoutId(); IConfigProvider configProvider = Provider.Get(); IConfigSection section = configProvider.LoadSingleSetting(sectionId, layoutId); if (section.ContainsSetting(layoutId)) { section.GetSetting <string>(GetLayoutId(), null).Value = null; configProvider.SaveSection(section); } }
public virtual Stream RestoreLayoutFromDataStore() { IConfigProvider configProvider = Provider.Get(); IConfigSection section = configProvider.LoadSingleSetting(GetLayoutSectionId(), GetLayoutId()); if (section.ContainsSetting(GetLayoutId())) { string layoutData = section.GetSetting <string>(GetLayoutId(), null).Value; if (!string.IsNullOrEmpty(layoutData)) { byte[] byteArray = Encoding.Unicode.GetBytes(layoutData); var layoutStream = new MemoryStream(byteArray); return(layoutStream); } } return(null); }
/// <summary> /// Creates settings in given sectionId /// </summary> public void CreateSettings() { IConfigProvider configProvider = Provider.Get(); IConfigSection section = configProvider.LoadSection(_sectionId); if (section == null) { section = ((IConfigAdmin)configProvider).CreateSection(_sectionId, _sectionId); Debug.WriteLine(string.Format("Section [{0}] erzeugt", _sectionId), "Settings Provider"); } foreach (SettingsProperty oldSetting in _oldSettings.Properties) { if (!section.ContainsSetting(oldSetting.Name)) { if (oldSetting.PropertyType == typeof(string)) { ISettingValue <string> newSetting = ((IConfigSectionAdmin)section).AddSetting(oldSetting.Name, oldSetting.DefaultValue.ToString()); if (!IsUserScopedSetting(oldSetting)) { newSetting.Scope = ESettingScope.Application; } } else if (oldSetting.PropertyType == typeof(bool)) { bool defaultValue; bool ok = bool.TryParse(oldSetting.DefaultValue.ToString(), out defaultValue); if (ok) { ISettingValue <bool> newSetting = ((IConfigSectionAdmin)section).AddSetting( oldSetting.Name, defaultValue); if (!IsUserScopedSetting(oldSetting)) { newSetting.Scope = ESettingScope.Application; } } } else if (oldSetting.PropertyType == typeof(int)) { int defaultValue; bool ok = int.TryParse(oldSetting.DefaultValue.ToString(), out defaultValue); if (ok) { ISettingValue <int> newSetting = ((IConfigSectionAdmin)section).AddSetting(oldSetting.Name, defaultValue); if (!IsUserScopedSetting(oldSetting)) { newSetting.Scope = ESettingScope.Application; } } } else if (oldSetting.PropertyType == typeof(decimal)) { decimal defaultValue; bool ok = decimal.TryParse(oldSetting.DefaultValue.ToString(), out defaultValue); if (ok) { ISettingValue <decimal> newSetting = ((IConfigSectionAdmin)section).AddSetting(oldSetting.Name, defaultValue); if (!IsUserScopedSetting(oldSetting)) { newSetting.Scope = ESettingScope.Application; } } } else if (oldSetting.PropertyType == typeof(float)) { float defaultValue; bool ok = float.TryParse(oldSetting.DefaultValue.ToString(), out defaultValue); if (ok) { ISettingValue <float> newSetting = ((IConfigSectionAdmin)section).AddSetting( oldSetting.Name, defaultValue); if (!IsUserScopedSetting(oldSetting)) { newSetting.Scope = ESettingScope.Application; } } } else if (oldSetting.PropertyType == typeof(Color)) { Color defaultValue = Color.Transparent; defaultValue = defaultValue.FromRgb(oldSetting.DefaultValue.ToString()); ISettingValue <Color> newSetting = ((IConfigSectionAdmin)section).AddSetting(oldSetting.Name, defaultValue); if (!IsUserScopedSetting(oldSetting)) { newSetting.Scope = ESettingScope.Application; } } } else { Debug.WriteLine(string.Format("Setting [{0}] existiert schon", oldSetting.Name), "Settings Provider"); } } configProvider.SaveSection(section); }