using FreeSql;
using LiveForum.IService.Others;
using LiveForum.Model;
namespace LiveForum.Service.Others
{
///
/// 系统设置服务实现
///
public class SystemSettingsService : ISystemSettingsService
{
private readonly IBaseRepository _settingsRepository;
///
/// 构造函数
///
public SystemSettingsService(IBaseRepository settingsRepository)
{
_settingsRepository = settingsRepository;
}
///
/// 获取配置值
///
public async Task GetSettingAsync(string key)
{
if (string.IsNullOrWhiteSpace(key))
{
return null;
}
var setting = await _settingsRepository.Select
.Where(x => x.SettingKey == key)
.FirstAsync();
return setting?.SettingValue;
}
///
/// 设置配置值
///
public async Task SetSettingAsync(string key, string value, string? description = null)
{
if (string.IsNullOrWhiteSpace(key))
{
return false;
}
var setting = await _settingsRepository.Select
.Where(x => x.SettingKey == key)
.FirstAsync();
var now = DateTime.Now;
if (setting == null)
{
// 新建配置
setting = new T_SystemSettings
{
SettingKey = key,
SettingValue = value,
Description = description,
UpdatedAt = now
};
await _settingsRepository.InsertAsync(setting);
}
else
{
// 更新配置
setting.SettingValue = value;
setting.UpdatedAt = now;
await _settingsRepository.UpdateAsync(setting);
}
return true;
}
}
}