/// <inheritdoc/> public async Task <IReadOnlyList <ISettingValue> > GetAllSettingValuesAsync(SettingScopes scopes) { var settingDefinitions = new Dictionary <string, SettingDefinition>(); var settingValues = new Dictionary <string, ISettingValue>(); //Fill all setting with default values. foreach (var setting in _settingDefinitionManager.GetAllSettingDefinitions()) { settingDefinitions[setting.Name] = setting; settingValues[setting.Name] = new SettingValueObject(setting.Name, setting.DefaultValue); } //Overwrite application settings if (scopes.HasFlag(SettingScopes.Application)) { foreach (var settingValue in await GetAllSettingValuesForApplicationAsync()) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); //TODO: Conditions get complicated, try to simplify it if (setting == null || !setting.Scopes.HasFlag(SettingScopes.Application)) { continue; } settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } return(settingValues.Values.ToImmutableList()); }
public async Task <string> GetDefaultTimezoneAsync(SettingScopes scope, int?tenantId) { if (scope == SettingScopes.User) { if (tenantId.HasValue) { return(await _settingManager.GetSettingValueForTenantAsync(TimingSettingNames.TimeZone, tenantId.Value)); } return(await _settingManager.GetSettingValueForApplicationAsync(TimingSettingNames.TimeZone)); } if (scope == SettingScopes.Tenant) { return(await _settingManager.GetSettingValueForApplicationAsync(TimingSettingNames.TimeZone)); } if (scope == SettingScopes.Application) { var timezoneSettingDefinition = _settingDefinitionManager.GetSettingDefinition(TimingSettingNames.TimeZone); return(timezoneSettingDefinition.DefaultValue); } throw new Exception("Unknown scope for default timezone setting."); }
/// <summary> /// Creates a new <see cref="SettingDefinition"/> object. /// </summary> /// <param name="name">Unique name of the setting</param> /// <param name="defaultValue">Default value of the setting</param> /// <param name="displayName">Display name of the permission</param> /// <param name="group">Group of this setting</param> /// <param name="description">A brief description for this setting</param> /// <param name="scopes">Scopes of this setting. Default value: <see cref="SettingScopes.Application"/>.</param> /// <param name="isVisibleToClients">Can clients see this setting and it's value. Default: false</param> /// <param name="isInherited">Is this setting inherited from parent scopes. Default: True.</param> /// <param name="customData">Can be used to store a custom object related to this setting</param> public SettingDefinition( string name, string defaultValue, ILocalizableString displayName = null, SettingDefinitionGroup group = null, ILocalizableString description = null, SettingScopes scopes = SettingScopes.Application, bool isVisibleToClients = false, bool isInherited = true, object customData = null) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } Name = name; DefaultValue = defaultValue; DisplayName = displayName; Group = @group; Description = description; Scopes = scopes; IsVisibleToClients = isVisibleToClients; IsInherited = isInherited; CustomData = customData; }
public async Task<string> GetDefaultTimezoneAsync(SettingScopes scope, int? tenantId) { if (scope == SettingScopes.User) { if (tenantId.HasValue) { return await _settingManager.GetSettingValueForTenantAsync(TimingSettingNames.TimeZone, tenantId.Value); } return await _settingManager.GetSettingValueForApplicationAsync(TimingSettingNames.TimeZone); } if (scope == SettingScopes.Tenant) { return await _settingManager.GetSettingValueForApplicationAsync(TimingSettingNames.TimeZone); } if (scope == SettingScopes.Application) { var timezoneSettingDefinition = _settingDefinitionManager.GetSettingDefinition(TimingSettingNames.TimeZone); return timezoneSettingDefinition.DefaultValue; } throw new Exception("Unknown scope for default timezone setting."); }
/// <summary> /// Creates a new <see cref="SettingDefinition"/> object. /// </summary> /// <param name="name">Unique name of the setting</param> /// <param name="defaultValue">Default value of the setting</param> /// <param name="displayName">Display name of the permission</param> /// <param name="group">Group of this setting</param> /// <param name="description">A brief description for this setting</param> /// <param name="scopes">Scopes of this setting. Default value: <see cref="SettingScopes.Application"/>.</param> /// <param name="isVisibleToClients">Can clients see this setting and it's value. Default: false</param> /// <param name="isInherited">Is this setting inherited from parent scopes. Default: True.</param> /// <param name="customData">Can be used to store a custom object related to this setting</param> public SettingDefinition( string name, string defaultValue, ILocalizableString displayName = null, SettingDefinitionGroup group = null, ILocalizableString description = null, SettingScopes scopes = SettingScopes.Application, bool isVisibleToClients = false, bool isInherited = true, object customData = null) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } Name = name; DefaultValue = defaultValue; DisplayName = displayName; Group = @group; Description = description; Scopes = scopes; IsVisibleToClients = isVisibleToClients; IsInherited = isInherited; CustomData = customData; }
/// <summary> /// Initializes a new instance of the <see cref="ConfigSetting{T}"/> class. /// </summary> /// <param name="key">The key.</param> /// <param name="defaultValue">Optional default value when key is not found or validation fails.</param> /// <param name="scope">Optional <see cref="SettingScopes"/> available to this <see cref="ConfigSetting{T}"/>.</param> public ConfigSetting(string key, T defaultValue = default, SettingScopes scope = null) { Key = key; DefaultValue = defaultValue; Validation = _ => true; ThrowOnException = false; Scopes = scope ?? SettingScopes.Any; }
/// <summary> /// Creates a new <see cref="SettingDefinition"/> object. /// </summary> /// <param name="name">Unique name of the setting</param> /// <param name="defaultValue">Default value of the setting</param> /// <param name="displayName">Display name of the permission</param> /// <param name="group">Group of this setting</param> /// <param name="description">A brief description for this setting</param> /// <param name="scopes">Scopes of this setting</param> public SettingDefinition(string name, string defaultValue, LocalizableString displayName = null, SettingDefinitionGroup group = null, LocalizableString description = null, SettingScopes scopes = SettingScopes.Application) { Name = name; DefaultValue = defaultValue; DisplayName = displayName; Group = @group; Description = description; Scopes = scopes; }
private async Task<List<NameValueDto>> GetTimezoneInfos(SettingScopes defaultTimezoneScope) { var defaultTimezoneId = await _timeZoneService.GetDefaultTimezoneAsync(defaultTimezoneScope, AbpSession.TenantId); var defaultTimezoneName = $"{L("Default")} [{defaultTimezoneId}]"; var timeZones = _timeZoneService.GetWindowsTimezones(); timeZones.Insert(0, new NameValueDto(defaultTimezoneName, string.Empty)); return timeZones; }
/// <summary> /// Creates a new <see cref="SettingDefinition"/> object. /// </summary> /// <param name="name">Unique name of the setting</param> /// <param name="defaultValue">Default value of the setting</param> /// <param name="displayName">Display name of the permission</param> /// <param name="group">Group of this setting</param> /// <param name="description">A brief description for this setting</param> /// <param name="scopes">Scopes of this setting. Default value: <see cref="SettingScopes.Application"/>.</param> /// <param name="isVisibleToClients">Can clients see this setting and it's value</param> public SettingDefinition(string name, string defaultValue, LocalizableString displayName = null, SettingDefinitionGroup group = null, LocalizableString description = null, SettingScopes scopes = SettingScopes.Application, bool isVisibleToClients = false) { Name = name; DefaultValue = defaultValue; DisplayName = displayName; Group = @group; Description = description; Scopes = scopes; IsVisibleToClients = isVisibleToClients; }
/// <summary> /// Creates a new <see cref="SettingDefinition"/> object. /// </summary> /// <param name="name">Unique name of the setting</param> /// <param name="defaultValue">Default value of the setting</param> /// <param name="displayName">Display name of the permission</param> /// <param name="group">Group of this setting</param> /// <param name="description">A brief description for this setting</param> /// <param name="scopes">Scopes of this setting. Default value: <see cref="SettingScopes.Application"/>.</param> /// <param name="isVisibleToClients">Can clients see this setting and it's value</param> public SettingDefinition(string name, string defaultValue, ILocalizableString displayName = null, SettingDefinitionGroup group = null, ILocalizableString description = null, SettingScopes scopes = SettingScopes.Application, bool isVisibleToClients = false) { Name = name; DefaultValue = defaultValue; DisplayName = displayName; Group = @group; Description = description; Scopes = scopes; IsVisibleToClients = isVisibleToClients; }
/// <inheritdoc/> public async Task <IReadOnlyList <ISettingValue> > GetAllSettingValuesAsync(SettingScopes scopes) { var settingDefinitions = new Dictionary <string, SettingDefinition>(); var settingValues = new Dictionary <string, ISettingValue>(); //Fill all setting with default values. foreach (var setting in _settingDefinitionManager.GetAllSettingDefinitions()) { settingDefinitions[setting.Name] = setting; settingValues[setting.Name] = new SettingValueObject(setting.Name, setting.DefaultValue); } //Overwrite application settings if (scopes.HasFlag(SettingScopes.Application)) { foreach (var settingValue in await GetAllSettingValuesForApplicationAsync()) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); if (setting != null && setting.Scopes.HasFlag(SettingScopes.Application)) { settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } } //Overwrite tenant settings if (scopes.HasFlag(SettingScopes.Tenant) && AbpSession.TenantId.HasValue) { foreach (var settingValue in await GetAllSettingValuesForTenantAsync(AbpSession.TenantId.Value)) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); if (setting != null && setting.Scopes.HasFlag(SettingScopes.Tenant)) { settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } } //Overwrite user settings if (scopes.HasFlag(SettingScopes.User) && AbpSession.UserId.HasValue) { foreach (var settingValue in await GetAllSettingValuesForUserAsync(AbpSession.UserId.Value)) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); if (setting != null && setting.Scopes.HasFlag(SettingScopes.User)) { settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } } return(settingValues.Values.ToImmutableList()); }
/// <inheritdoc/> public async Task<IReadOnlyList<ISettingValue>> GetAllSettingValuesAsync(SettingScopes scopes) { var settingDefinitions = new Dictionary<string, SettingDefinition>(); var settingValues = new Dictionary<string, ISettingValue>(); //Fill all setting with default values. foreach (var setting in _settingDefinitionManager.GetAllSettingDefinitions()) { settingDefinitions[setting.Name] = setting; settingValues[setting.Name] = new SettingValueObject(setting.Name, setting.DefaultValue); } //Overwrite application settings if (scopes.HasFlag(SettingScopes.Application)) { foreach (var settingValue in await GetAllSettingValuesForApplicationAsync()) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); //TODO: Conditions get complicated, try to simplify it if (setting == null || !setting.Scopes.HasFlag(SettingScopes.Application)) { continue; } if (!setting.IsInherited && (setting.Scopes.HasFlag(SettingScopes.User) && AbpSession.UserId.HasValue)) { continue; } settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } //Overwrite user settings if (scopes.HasFlag(SettingScopes.User) && AbpSession.UserId.HasValue) { foreach (var settingValue in await GetAllSettingValuesForUserAsync(AbpSession.UserId.Value)) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); if (setting != null && setting.Scopes.HasFlag(SettingScopes.User)) { settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } } return settingValues.Values.ToImmutableList(); }
public SettingDefinition(string name, string defaultValue, string displayName, string description, SettingScopes scopes) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } Name = name; DefaultValue = defaultValue; DisplayName = displayName; Description = description; Scopes = scopes; }
private async Task<List<NameValueDto>> GetTimezoneInfos(SettingScopes defaultTimezoneScope) { var defaultTimezoneId = await _timeZoneService.GetDefaultTimezoneAsync(defaultTimezoneScope, AbpSession.TenantId); var defaultTimezone = TimeZoneInfo.FindSystemTimeZoneById(defaultTimezoneId); var defaultTimezoneName = $"{L("Default")} [{defaultTimezone.DisplayName}]"; var timeZones = TimeZoneInfo.GetSystemTimeZones() .Select(tz => new NameValueDto(tz.DisplayName, tz.Id)) .ToList(); timeZones.Insert(0, new NameValueDto(defaultTimezoneName, string.Empty)); return timeZones; }
private async Task <List <NameValueDto> > GetTimezoneInfos(SettingScopes defaultTimezoneScope) { var defaultTimezoneId = await _timeZoneService.GetDefaultTimezoneAsync(defaultTimezoneScope, AbpSession.TenantId); var defaultTimezone = TimeZoneInfo.FindSystemTimeZoneById(defaultTimezoneId); var defaultTimezoneName = string.Format("{0} [{1}]", L("Default"), defaultTimezone.DisplayName); var timeZones = TimeZoneInfo.GetSystemTimeZones() .Select(tz => new NameValueDto(tz.DisplayName, tz.Id)) .ToList(); timeZones.Insert(0, new NameValueDto(defaultTimezoneName, string.Empty)); return(timeZones); }
public async Task <IReadOnlyList <ISettingValue> > GetAllSettingValuesAsync(SettingScopes scopes) { var settingDefinitions = new Dictionary <string, SettingDefinition>(); var settingValues = new Dictionary <string, ISettingValue>(); //用默认值填充所有设置。 foreach (var setting in _settingDefinitionManager.GetAllSettingDefinitions()) { settingDefinitions[setting.Name] = setting; settingValues[setting.Name] = new SettingValueObject(setting.Name, setting.DefaultValue); } //覆盖应用程序设置 if (scopes.HasFlag(SettingScopes.Application)) { foreach (var settingValue in await GetAllSettingValuesForApplicationAsync()) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); //TODO: 条件变得复杂,试着简化它 if (setting == null || !setting.Scopes.HasFlag(SettingScopes.Application)) { continue; } if (!setting.IsInherited && setting.Scopes.HasFlag(SettingScopes.User) && !string.IsNullOrWhiteSpace(SharePlatformSession.UserId)) { continue; } settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } //覆盖用户设置 if (scopes.HasFlag(SettingScopes.User) && !string.IsNullOrWhiteSpace(SharePlatformSession.UserId)) { foreach (var settingValue in await GetAllSettingValuesForUserAsync(SharePlatformSession.ToUserIdentifier())) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); if (setting != null && setting.Scopes.HasFlag(SettingScopes.User)) { settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } } return(settingValues.Values.ToImmutableList()); }
/// <summary> /// Creates a new <see cref="SettingDefinition"/> object. /// </summary> /// <param name="name">Unique name of the setting</param> /// <param name="defaultValue">Default value of the setting</param> /// <param name="displayName">Display name of the permission</param> /// <param name="group">Group of this setting</param> /// <param name="description">A brief description for this setting</param> /// <param name="scopes">Scopes of this setting. Default value: <see cref="SettingScopes.Application"/>.</param> /// <param name="isVisibleToClients">This parameter is obsolete. Use <paramref name="clientVisibilityProvider"/> instead! Default: false</param> /// <param name="isInherited">Is this setting inherited from parent scopes. Default: True.</param> /// <param name="customData">Can be used to store a custom object related to this setting</param> /// <param name="clientVisibilityProvider">Client visibility definition for the setting. Default: invisible</param> /// <param name="isEncrypted">Is this setting stored as encrypted in the data source.</param> public SettingDefinition( string name, string defaultValue, ILocalizableString displayName = null, SettingDefinitionGroup group = null, ILocalizableString description = null, SettingScopes scopes = SettingScopes.Application, bool isVisibleToClients = false, bool isInherited = true, object customData = null, ISettingClientVisibilityProvider clientVisibilityProvider = null, bool isEncrypted = false) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } Name = name; DefaultValue = defaultValue; DisplayName = displayName; Group = @group; Description = description; Scopes = scopes; IsInherited = isInherited; CustomData = customData; IsEncrypted = isEncrypted; ClientVisibilityProvider = new HiddenSettingClientVisibilityProvider(); if (isVisibleToClients) { ClientVisibilityProvider = new VisibleSettingClientVisibilityProvider(); } else if (clientVisibilityProvider != null) { ClientVisibilityProvider = clientVisibilityProvider; } }
/// <inheritdoc/> public IReadOnlyList <ISettingValue> GetAllSettingValues(SettingScopes scopes) { var settingDefinitions = new Dictionary <string, SettingDefinition>(); var settingValues = new Dictionary <string, ISettingValue>(); //Fill all setting with default values. foreach (var setting in _settingDefinitionManager.GetAllSettingDefinitions()) { settingDefinitions[setting.Name] = setting; settingValues[setting.Name] = new SettingValueObject(setting.Name, setting.DefaultValue); } //Overwrite application settings if (scopes.HasFlag(SettingScopes.Application)) { foreach (var settingValue in GetAllSettingValuesForApplication()) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); //TODO: Conditions get complicated, try to simplify it if (setting == null || !setting.Scopes.HasFlag(SettingScopes.Application)) { continue; } if (!setting.IsInherited && ((setting.Scopes.HasFlag(SettingScopes.Tenant) && AbpSession.TenantId.HasValue) || (setting.Scopes.HasFlag(SettingScopes.User) && AbpSession.UserId.HasValue))) { continue; } settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } //Overwrite tenant settings if (scopes.HasFlag(SettingScopes.Tenant) && AbpSession.TenantId.HasValue) { foreach (var settingValue in GetAllSettingValuesForTenant(AbpSession.TenantId.Value)) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); //TODO: Conditions get complicated, try to simplify it if (setting == null || !setting.Scopes.HasFlag(SettingScopes.Tenant)) { continue; } if (!setting.IsInherited && (setting.Scopes.HasFlag(SettingScopes.User) && AbpSession.UserId.HasValue)) { continue; } settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } //Overwrite user settings if (scopes.HasFlag(SettingScopes.User) && AbpSession.UserId.HasValue) { foreach (var settingValue in GetAllSettingValuesForUser(AbpSession.ToUserIdentifier())) { var setting = settingDefinitions.GetOrDefault(settingValue.Name); if (setting != null && setting.Scopes.HasFlag(SettingScopes.User)) { settingValues[settingValue.Name] = new SettingValueObject(settingValue.Name, settingValue.Value); } } } return(settingValues.Values.ToImmutableList()); }
public AutoSettingDefinitionAttribute(object defaultValue, bool isVisibleToClients = true, SettingScopes scopes = SettingScopes.Application) { this.DefaultValue = defaultValue; this.IsVisibleToClients = isVisibleToClients; this.Scopes = scopes; }
/// <summary> /// Initializes a new instance of the <see cref="ConfigSetting{T}"/> class. /// </summary> /// <param name="key">The key.</param> /// <param name="defaultValue">Default value when key is not found or validation fails.</param> /// <param name="scope"><see cref="SettingScopes"/> available to this <see cref="ConfigSetting{T}"/>.</param> /// <param name="fallbackSetting">The fallback <see cref="ConfigSetting{T}"/>.</param> public ConfigSetting( string key, T defaultValue, SettingScopes scope, ConfigSetting <T> fallbackSetting) :