using System; using System.IO; using HMI.Core.Entity; using HMI.Core.Util; namespace HMI.Core.Setting { public class SystemSetting { public static SystemSetting Instance { get; private set; } /// /// 系统设置改变事件 /// public static event EventHandler SystemSettingChanged; private static string FilePath = Path.Combine(PathHelper.SettingFolder, "SystemConfig.xml"); static SystemSetting() { LoadFromXml(); } private SystemSetting() { } public string LogoPath { get; private set; } = ".\\Logo.png"; public string LoginLogoPath { get; private set; } = ".\\LoginLogo.png"; public string WindowTitle { get; private set; } = "产品测试平台"; public string PlcIp { get; private set; } = "127.0.0.1"; public int PlcPort { get; private set; } = 102; public bool PlcEnabled { get; private set; } public string CurrentLanguage { get; private set; } = "zh-CN"; public int LogExpiredDays { get; private set; } = 7; private static void LoadFromXml() { if (Instance != null) return; if (!File.Exists(FilePath)) { Instance = new SystemSetting(); } else { SystemSettingModel model = XmlHelper.DeserializeFromXml(FilePath); SystemSetting setting = new SystemSetting(); BeanUtil.Copy(model, setting); Instance = setting; } } public static SystemSettingModel GetModel() { return XmlHelper.DeserializeFromXml(FilePath); } public static void ReLoad() { if (!File.Exists(FilePath)) { return; } else { SystemSettingModel model = XmlHelper.DeserializeFromXml(FilePath); SystemSetting setting = new SystemSetting(); BeanUtil.Copy(model, setting); Instance = setting; } SystemSettingChanged?.Invoke(null, Instance); } } public class SystemSettingModel : NotifyBase { private string logoPath; public string LogoPath { get => logoPath; set { Set(ref logoPath, value); } } private string loginLogoPath; public string LoginLogoPath { get => loginLogoPath; set { Set(ref loginLogoPath, value); } } private string windowTitle; public string WindowTitle { get => windowTitle; set { Set(ref windowTitle, value); } } private string plcIp; public string PlcIp { get => plcIp; set { Set(ref plcIp, value); } } private int plcPort; public int PlcPort { get => plcPort; set { Set(ref plcPort, value); } } private bool plcEnabled; public bool PlcEnabled { get => plcEnabled; set { Set(ref plcEnabled, value); } } private string currentLanguage; public string CurrentLanguage { get => currentLanguage; set { Set(ref currentLanguage, value); } } private int logExpiredDays; public int LogExpiredDays { get => logExpiredDays; set { Set(ref logExpiredDays, value); } } } }