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