12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using DevExpress.Xpo;
- using Ips.Library.DxpLib;
- using Ips.Spd.SysSettings;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.Json;
- using System.Threading.Tasks;
- namespace Ips.Sps.SysSettings
- {
- public class SysSettingManager
- {
- public static readonly SysSettingManager It = new SysSettingManager();
- private SysSettingManager()
- {
- LoadSettings();
- }
- public SiteSettingModel SiteSetting { get; set; } = new SiteSettingModel();
- public PosSettingModel PosSetting { get; set; } = new PosSettingModel();
- public List<AdcSettingModel> AdcSettings { get; set; } = new List<AdcSettingModel>()
- {
- new AdcSettingModel()
- };
- public void LoadSettings()
- {
- Session session = new Session();
- var settingList = session.Query<SysSetting>().ToList();
- foreach (var item in settingList)
- {
- try
- {
- switch (item.Name)
- {
- case nameof(SiteSetting):
- SiteSetting = JsonSerializer.Deserialize<SiteSettingModel>(item.Value);
- break;
- case nameof(PosSetting):
- PosSetting = JsonSerializer.Deserialize<PosSettingModel>(item.Value);
- break;
- case nameof(AdcSettings):
- AdcSettings = JsonSerializer.Deserialize<List<AdcSettingModel>>(item.Value);
- break;
- }
- }
- catch (Exception ex)
- {
- MsgHelper.ShowError($"加载配置出错,错误消息:{ex.Message}");
- }
- }
- }
- public void SaveSettings()
- {
- using (UnitOfWork uow = new UnitOfWork())
- {
- var settingList = uow.Query<SysSetting>().ToList();
- SaveSettingItem(uow, settingList, nameof(SiteSetting), SiteSetting);
- SaveSettingItem(uow, settingList, nameof(PosSetting), PosSetting);
- SaveSettingItem(uow, settingList, nameof(AdcSettings), AdcSettings);
- uow.CommitChanges();
- }
- }
- protected void SaveSettingItem(UnitOfWork uow, List<SysSetting> settingList, string name, object value)
- {
- var settingVal = JsonSerializer.Serialize(value);
- var setting = settingList.FirstOrDefault(m => m.Name == name) ?? new SysSetting(uow, name, "");
- setting.Value = settingVal;
- }
- }
- }
|