Files
DMS/DMS.Infrastructure/Configurations/AppSettings.cs
David P.G 1a666b79c8 1. 在 AppSettings 类中添加了 DefaultPollingInterval 属性,用于存储全局默认轮询间隔值
2. 更新了 SettingViewModel 以包含对轮询间隔设置的支持,允许用户在设置页面中修改该值
   3. 修改了 VariableItemViewModel,使其在初始化时从 AppSettings 加载默认轮询间隔值
   4. 更新了 SettingView.xaml,在设置页面的"通用设置"部分添加了轮询间隔配置项
2025-10-02 12:35:42 +08:00

58 lines
2.0 KiB
C#

using AutoMapper;
using DMS.Core.Models;
using Newtonsoft.Json;
namespace DMS.Infrastructure.Configurations
{
public class DatabaseSettings
{
public string DbType { get; set; } = "MySql";
public string Server { get; set; } = "127.0.0.1";
public int Port { get; set; } = 3306;
public string UserId { get; set; } = "root";
public string Password { get; set; } = "Pgw15221236646";
public string Database { get; set; } = "pmswpf";
}
public class AppSettings
{
private readonly IMapper _mapper;
public DatabaseSettings Database { get; set; } = new DatabaseSettings();
public string Theme { get; set; } = "跟随系统";
public bool EnableS7Service { get; set; } = true;
public bool EnableMqttService { get; set; } = true;
public bool EnableOpcUaService { get; set; } = true;
public bool MinimizeToTrayOnClose { get; set; } = true;
public List<MenuBean> Menus { get; set; } = new List<MenuBean>();
public int DefaultPollingInterval { get; set; } = 30000; // 默认轮询间隔30秒
private static readonly string SettingsFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "appSettings.json");
public AppSettings Load()
{
if (File.Exists(SettingsFilePath))
{
string json = File.ReadAllText(SettingsFilePath);
AppSettings appSettings = JsonConvert.DeserializeObject<AppSettings>(json);
return appSettings;
}
return new AppSettings();
}
public void Save()
{
string json = JsonConvert.SerializeObject(this, Formatting.Indented);
File.WriteAllText(SettingsFilePath, json);
}
public string ToConnectionString()
{
return $"server={Database.Server};port={Database.Port};user={Database.UserId};password={Database.Password};database={Database.Database};";
}
}
}