using CommunityToolkit.Mvvm.ComponentModel; using SunlightAggregationTerminal.Class; using SunlightAggregationTerminal.Models; using SunlightAggregationTerminal.View; using System.Collections.ObjectModel; using TouchSocket.Core; namespace SunlightAggregationTerminal; public partial class ProfilePage : ContentPage { private static bool SET = false; public ProfilePage() { InitializeComponent(); this.BindingContext = App.GlobalData; } public static void _data(string v,string k) { if (k == "Password") { App.GlobalData.UserPassword = v; string sql = @"UPDATE Users SET UserPassword = '" + App.GlobalData.UserPassword + "' WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); SET = false; } if (k == "Name") { App.GlobalData.UserName = v; string sql = @"UPDATE Users SET UserName = '" + App.GlobalData.UserName + "' WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); SET = false; } } public async void _Command(string dat) { DataReceived.Transmit(dat); SET = true; // 创建一个 秒的延时任务 Task delayTask = Task.Delay(10000); // 创建一个监测任务,不断检查变量 Task monitorTask = Task.Run(async () => { while (SET) { // 每隔 100 毫秒检查一次,避免 CPU 占用过高 await Task.Delay(1000); } }); // 使用 Task.WhenAny 等待任意一个任务完成 Task task = await Task.WhenAny(delayTask, monitorTask); if (task==delayTask) { //超时 await DisplayAlertAsync("", "修改失败", "是"); } SET = false; } private async void Out_Clicked(object sender, EventArgs e) { //退出 bool shouldExit = await DisplayAlertAsync("退出确认", "确定要退出吗?", "是", "否"); if (shouldExit) { App.GlobalData.LogNo = false; await TcpServer.tcpClient.CloseAsync(""); string sql = "UPDATE Users SET LogNo = 0 WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); var logpage = new View.LogPage(); await Navigation.PushModalAsync(logpage); } } private async void UserName_Tapped(object sender, TappedEventArgs e) { string result = await DisplayPromptAsync("","姓名"); // 处理结果 if (!string.IsNullOrWhiteSpace(result)) { Dictionary data_ = new Dictionary(); data_.Add("Command", "SETUSER"); data_.Add("USER", App.GlobalData.User); data_.Add("KEY", "Name"); data_.Add("VALUE", result); _Command(data_.ToJsonString()); } } private async void UserPassword_Tapped(object sender, TappedEventArgs e) { string result = await DisplayPromptAsync("", "密码"); // 处理结果 if (!string.IsNullOrWhiteSpace(result)) { Dictionary data_ = new Dictionary(); data_.Add("Command", "SETUSER"); data_.Add("USER", App.GlobalData.User); data_.Add("KEY", "Password"); data_.Add("VALUE", result); _Command(data_.ToJsonString()); } } private async void ServerID_Tapped(object sender, TappedEventArgs e) { string result = await DisplayPromptAsync("", "服务器地址"); // 处理结果 if (!string.IsNullOrWhiteSpace(result)) { App.GlobalData.ServerID = result; string sql = @"UPDATE Users SET ServerID = '" + App.GlobalData.ServerID + "' WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); } } private async void ServerHTTP_Tapped(object sender, TappedEventArgs e) { string result = await DisplayPromptAsync("", "服务器地址"); // 处理结果 if (!string.IsNullOrWhiteSpace(result)) { App.GlobalData.ServerID = result; string sql = @"UPDATE Users SET ServerHTTP = '" + App.GlobalData.ServerID + "' WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); } } private async void ProxyID_Tapped(object sender, TappedEventArgs e) { string result = await DisplayPromptAsync("", "代理"); // 处理结果 if (!string.IsNullOrWhiteSpace(result)) { App.GlobalData.ProxyID = result; string sql = @"UPDATE Users SET ProxyID = '" + App.GlobalData.ProxyID + "' WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); } } private void MessageNotificationMode_Toggled(object sender, ToggledEventArgs e) { string sql = @"UPDATE Users SET MessageNotificationMode = "+ App.GlobalData.MessageNotificationMode + " WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); } private void DarkMode_Toggled(object sender, ToggledEventArgs e) { string sql = @"UPDATE Users SET DarkMode = " + App.GlobalData.DarkMode + " WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); } private void LocalAreaNetworkMode_Toggled(object sender, ToggledEventArgs e) { string sql = @"UPDATE Users SET LocalAreaNetworkMode = " + App.GlobalData.LocalAreaNetworkMode + " WHERE User='" + App.GlobalData.User + "';"; AppModels.Updata(sql); } }