|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
App.GlobalData.UserName = dat.Field<string>("UserName") ?? "";
|
|
|
|
|
App.GlobalData.UserId = dat.Field<string>("UserID") ?? "";
|
|
|
|
|
App.GlobalData.User = dat.Field<string>("User") ?? "";
|
|
|
|
|
App.GlobalData.UserPassword = dat.Field<string>("UserPassword") ?? "";
|
|
|
|
|
App.GlobalData.Enterprise = dat.Field<string>("Enterprise") ?? "";
|
|
|
|
|
App.GlobalData.Department = dat.Field<string>("Department") ?? "";
|
|
|
|
|
App.GlobalData.Groups = dat.Field<string>("Groups") ?? "";
|
|
|
|
|
App.GlobalData.ServerID = dat.Field<string>("ServerID") ?? "";
|
|
|
|
|
App.GlobalData.ProxyID = dat.Field<string>("ProxyID") ?? "";
|
|
|
|
|
App.GlobalData.LogNo = Convert.ToBoolean(dat.Field<object>("LogNo"));
|
|
|
|
|
App.GlobalData.LocalAreaNetworkMode = Convert.ToBoolean(dat.Field<object>("LocalAreaNetworkMode"));
|
|
|
|
|
App.GlobalData.DarkMode = Convert.ToBoolean(dat.Field<object>("DarkMode"));
|
|
|
|
|
App.GlobalData.MessageNotificationMode = Convert.ToBoolean(dat.Field<object>("MessageNotificationMode"));
|
|
|
|
|
|
|
|
|
|
TcpServer.Configuration(App.GlobalData.ServerID, App.GlobalData.User, App.GlobalData.UserPassword, dat.Field<string>("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<bool> 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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|