mirror of https://github.com/abpframework/abp.git
14 changed files with 180 additions and 53 deletions
@ -0,0 +1,27 @@ |
|||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.Extensions.Configuration; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
|
||||
|
namespace Volo.Abp.Settings |
||||
|
{ |
||||
|
public class ConfigurationSettingValueProvider : ISettingValueProvider, ITransientDependency |
||||
|
{ |
||||
|
public const string ConfigurationNamePrefix = "Settings:"; |
||||
|
|
||||
|
public const string ProviderName = "C"; |
||||
|
|
||||
|
public string Name => ProviderName; |
||||
|
|
||||
|
protected IConfiguration Configuration { get; } |
||||
|
|
||||
|
public ConfigurationSettingValueProvider(IConfiguration configuration) |
||||
|
{ |
||||
|
Configuration = configuration; |
||||
|
} |
||||
|
|
||||
|
public virtual Task<string> GetOrNullAsync(SettingDefinition setting) |
||||
|
{ |
||||
|
return Task.FromResult(Configuration[ConfigurationNamePrefix + setting.Name]); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.Extensions.Configuration; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.Settings; |
||||
|
|
||||
|
namespace Volo.Abp.SettingManagement |
||||
|
{ |
||||
|
public class ConfigurationSettingManagementProvider : ISettingManagementProvider, ITransientDependency |
||||
|
{ |
||||
|
public string Name => ConfigurationSettingValueProvider.ProviderName; |
||||
|
|
||||
|
protected IConfiguration Configuration { get; } |
||||
|
|
||||
|
public ConfigurationSettingManagementProvider(IConfiguration configuration) |
||||
|
{ |
||||
|
Configuration = configuration; |
||||
|
} |
||||
|
|
||||
|
public Task<string> GetOrNullAsync(SettingDefinition setting, string providerKey) |
||||
|
{ |
||||
|
return Task.FromResult(Configuration[ConfigurationSettingValueProvider.ConfigurationNamePrefix + setting.Name]); |
||||
|
} |
||||
|
|
||||
|
public Task SetAsync(SettingDefinition setting, string value, string providerKey) |
||||
|
{ |
||||
|
throw new AbpException($"Can not set a setting value to the application configuration."); |
||||
|
} |
||||
|
|
||||
|
public Task ClearAsync(SettingDefinition setting, string providerKey) |
||||
|
{ |
||||
|
throw new AbpException($"Can not set a setting value to the application configuration."); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,20 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using System.Threading.Tasks; |
||||
|
using JetBrains.Annotations; |
||||
|
using Volo.Abp.Settings; |
||||
|
|
||||
|
namespace Volo.Abp.SettingManagement |
||||
|
{ |
||||
|
public static class ConfigurationValueSettingManagerExtensions |
||||
|
{ |
||||
|
public static Task<string> GetOrNullConfigurationAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) |
||||
|
{ |
||||
|
return settingManager.GetOrNullAsync(name, ConfigurationSettingValueProvider.ProviderName, null, fallback); |
||||
|
} |
||||
|
|
||||
|
public static Task<List<SettingValue>> GetAllConfigurationAsync(this ISettingManager settingManager, bool fallback = true) |
||||
|
{ |
||||
|
return settingManager.GetAllAsync(ConfigurationSettingValueProvider.ProviderName, null, fallback); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue