批量设置和获取ABP SettingManager
/// <summary>
/// 批量修改系统设置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task ChangeSystemSetting(ChangeSystemSettingDto input)
{
var settings = new Dictionary<string, object> { };
// 遍历 ChangeSystemSettingDto 的所有属性
foreach (var propertyInfo in typeof(ChangeSystemSettingDto).GetProperties())
{
// 获取属性名称和值
var propertyName = propertyInfo.Name;
var propertyValue = propertyInfo.GetValue(input);
settings.Add(propertyName, propertyValue);
}
var myStaticClassType = typeof(AppSettingNames);
//批量修改
foreach (var setting in settings)
{
//获取常量值
var settingNamesFiled = myStaticClassType.GetField(setting.Key);
var settingVlue = (string)settingNamesFiled.GetValue(null);
// 修改所有租户的这个设置项的值
await SettingManager.ChangeSettingForApplicationAsync(settingVlue, setting.Value.ToString());
}
}
/// <summary>
/// 获取所有的系统设置属性
/// </summary>
/// <returns></returns>
public async Task<ChangeSystemSettingDto> GetSystemSetting()
{
// 创建一个 MyDto 实例
ChangeSystemSettingDto systemSettingDto = new ChangeSystemSettingDto();
var myStaticClassType = typeof(AppSettingNames);
// 遍历 ChangeSystemSettingDto 的所有属性并为其赋值
foreach (var propertyInfo in typeof(ChangeSystemSettingDto).GetProperties())
{
// 获取属性名称和类型
var propertyName = propertyInfo.Name;
// 获取 常量字段并读取其值
var settingNamesFiled = myStaticClassType.GetField(propertyName);
var settingVlue = (string)settingNamesFiled.GetValue(null);
//获取setting 值
propertyInfo.SetValue(systemSettingDto, await SettingManager.GetSettingValueAsync(settingVlue));
}
return systemSettingDto;
}
/// <summary>
/// 系统设置
/// </summary>
public static class AppSettingNames
{
public const string UiTheme = "App.UiTheme";
/// <summary>
/// 文件上传地址
/// </summary>
public const string FilePath = "App.FilePath";
/// <summary>
/// 图片上传大小
/// </summary>
public const string ImageSize = "App.Image.Size";
/// <summary>
/// 文件上传类型
/// </summary>
public const string FileExtension = "App.File.Extension";
}
/// <summary>
/// 系统设置Dto
/// </summary>
public class ChangeSystemSettingDto
{
/// <summary>
/// 文件地址
/// </summary>
public string FilePath { get; set; }
/// <summary>
/// 图片大小
/// </summary>
public string ImageSize { get; set; }
/// <summary>
/// 文件上传类型
/// </summary>
public string FileExtension { get; set; }
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步