namespace OSS.Tools.DirConfig
{
///
/// 默认list配置实现
///
public class DefaultToolListConfig : IToolListConfig
{
private static readonly DefaultToolDirConfig _defaultTool = new DefaultToolDirConfig();
///
public async Task SetItem(string listKey, string itemKey, TConfig itemValue, string sourceName)
{
var configRes = await _defaultTool.GetDirConfig>>(listKey, sourceName);
ItemConfig? item;
if (configRes != null && (item = configRes.FirstOrDefault(c => c.key == itemKey)) != null)
{
item.value = itemValue;
}
else
{
configRes ??= new List>();
configRes.Add(new ItemConfig() {key = itemKey, value = itemValue});
}
return await _defaultTool.SetDirConfig(listKey, configRes, sourceName);
}
///
public async Task>> GetList(string listKey, string sourceName)
{
return (await _defaultTool.GetDirConfig>>(listKey, sourceName)) ??
new List>();// new Task>>();
}
///
public async Task GetCount(string listKey, string sourceName)
{
return (await _defaultTool.GetDirConfig>(listKey, sourceName))?.Count ?? 0;
}
///
public async Task?> GetItem(string listKey, string itemKey, string sourceName)
{
var configs =await _defaultTool.GetDirConfig>>(listKey, sourceName);
return configs?.FirstOrDefault(i => i.key == itemKey);
}
///
public async Task RemoveItem(string listKey, string itemKey, string sourceName)
{
var configRes = await _defaultTool.GetDirConfig>(listKey, sourceName);
ItemConfig? item;
if (configRes != null && (item = configRes.FirstOrDefault(c => c.key == itemKey)) != null)
{
configRes.Remove(item);
await _defaultTool.SetDirConfig(listKey, configRes, sourceName);
}
}
}
}