using CommunityToolkit.Mvvm.ComponentModel; using SunlightAggregationTerminal.Class; using System; using System.Collections.Generic; using System.Data; using System.Text; namespace SunlightAggregationTerminal.Models { public class AppModels : ObservableObject { public static SqliteHelper sqliteHelper = SQLiteConfig.Config(Path.Combine(FileSystem.AppDataDirectory, "MyAppData.db"))!; //数据库连接路径(获取各平台的应用数据目录) public AppModels() { if(sqliteHelper != null) {//获取配置信息 sqliteHelper.Open(); DataSet? userdata = sqliteHelper.ExecuteDataSet("select * from Users ", null); sqliteHelper.Close(); if (userdata != null) { // DataRow dat = userdata.Tables[0].Rows[0]; // if (dat != null) // { foreach (DataRow dat in userdata.Tables[0].Rows) { App.GlobalData.UserName = dat.Field("UserName") ?? ""; App.GlobalData.UserId = dat.Field("UserID") ?? ""; App.GlobalData.User = dat.Field("User") ?? ""; App.GlobalData.UserPassword = dat.Field("UserPassword") ?? ""; App.GlobalData.Enterprise = dat.Field("Enterprise") ?? ""; App.GlobalData.Department = dat.Field("Department") ?? ""; App.GlobalData.Groups = dat.Field("Groups") ?? ""; App.GlobalData.ServerID = dat.Field("ServerID") ?? ""; App.GlobalData.ProxyID = dat.Field("ProxyID") ?? ""; App.GlobalData.LogNo = Convert.ToBoolean(dat.Field("LogNo")); App.GlobalData.LocalAreaNetworkMode = Convert.ToBoolean(dat.Field("LocalAreaNetworkMode")); App.GlobalData.DarkMode = Convert.ToBoolean(dat.Field("DarkMode")); App.GlobalData.MessageNotificationMode = Convert.ToBoolean(dat.Field("MessageNotificationMode")); TcpServer.Configuration(App.GlobalData.ServerID, App.GlobalData.User, App.GlobalData.UserPassword, dat.Field("GUID") ?? "Not"); //启动tcp // TcpServer.CreateCustomService(); } } } } public static void Updata(string sql) { sqliteHelper.Open(); sqliteHelper.ExecuteNonQuery(sql, null); sqliteHelper.Close(); } public static void INSERT(string sql) { sqliteHelper.Open(); sqliteHelper.ExecuteNonQuery(sql, null); sqliteHelper.Close(); } public static DataSet? Select(string sql) { sqliteHelper.Open(); var userdata = sqliteHelper.ExecuteDataSet(sql, null); sqliteHelper.Close(); return userdata; } public async static Task LogIn() { App.GlobalData.LogNo = false; //发生登录请求 // 创建一个 15 秒的延时任务 Task delayTask = Task.Delay(15000); // 创建一个监测任务,不断检查变量 Task monitorTask = Task.Run(async () => { while (!App.GlobalData.LogNo) { // 每隔 100 毫秒检查一次,避免 CPU 占用过高 await Task.Delay(100); } }); // 使用 Task.WhenAny 等待任意一个任务完成 await Task.WhenAny(delayTask, monitorTask); if (App.GlobalData.LogNo) { return true; } else { return false; } } public static string GetAppUniqueId() { const string key = "sunlight_app_unique_id"; // 尝试从安全存储中读取 string? id = SecureStorage.GetAsync(key).Result; if (string.IsNullOrEmpty(id)) { // 如果不存在,生成一个新的 GUID id = Guid.NewGuid().ToString(); // 保存到安全存储 SecureStorage.SetAsync(key, id).Wait(); } return id; } public static string? GetSERVER() { const string key = "sunlight_server"; // 尝试从安全存储中读取 string? dat = SecureStorage.GetAsync(key).Result; return dat; } public static void GetSERVERWait(string dat) { const string key = "sunlight_server"; if (string.IsNullOrEmpty(dat)) { // 如果不存在,生成一个新的 GUID dat = Guid.NewGuid().ToString(); // 保存到安全存储 SecureStorage.SetAsync(key, dat).Wait(); } } } }