using System.Collections.Concurrent;
using OS.Common.ComModels;
namespace OS.Common.Modules.DirConfigModule
{
///
/// 字典配置通用存储获取信息
///
public static class DirConfigUtil
{
private static readonly ConcurrentDictionary _dirConfigDirs = new ConcurrentDictionary();
///
/// 通过模块名称获取
///
///
///
private static IDirConfig GetDirConfig(string dirConfigModule)
{
if (string.IsNullOrEmpty(dirConfigModule))
dirConfigModule = ModuleNames.Default;
if (_dirConfigDirs.ContainsKey(dirConfigModule))
return _dirConfigDirs[dirConfigModule];
var dirConfig = OsConfig.Provider.GetDirConfig(dirConfigModule) ?? new DirConfig();
_dirConfigDirs.TryAdd(dirConfigModule, dirConfig);
return dirConfig;
}
///
/// 设置字典配置信息
///
///
///
/// 模块名称
///
///
public static ResultModel SetDirConfig(string key, TConfig dirConfig,
string moduleName = null) where TConfig : class, new()
{
return GetDirConfig(moduleName).SetDirConfig(key, dirConfig);
}
///
/// 获取字典配置
///
///
///
/// 模块名称
///
public static TConfig GetDirConfig(string key, string moduleName = null) where TConfig : class ,new()
{
return GetDirConfig(moduleName).GetDirConfig(key);
}
///
/// 移除配置信息
///
///
/// 模块名称
///
public static ResultModel RemoveDirConfig( string key, string moduleName = null)
{
return GetDirConfig(moduleName).RemoveDirConfig(key);
}
}
}