diff --git a/UserClass/AsyncTcpClient.cs b/UserClass/AsyncTcpClient.cs index f640414..91a18eb 100644 --- a/UserClass/AsyncTcpClient.cs +++ b/UserClass/AsyncTcpClient.cs @@ -3,6 +3,7 @@ using SunlightAggregationManager.ViewModel; using System; using System.Collections.Generic; using System.Data; +using System.Reflection.PortableExecutable; using System.Text; using System.Text.Json; using System.Text.RegularExpressions; @@ -207,7 +208,11 @@ namespace SunlightAggregationManager.UserClass Dictionary data_ = new Dictionary(); var deserialized = JsonSerializer.Deserialize>(dat)!; if (deserialized.TryGetValue("Command", out var val) && val != null) Command = val.ToString()!; - if (Command == "Log")//回复请求的信息 + if (Command == "SysCom")//回复指令的信息 + { + ret = JsonSerializer.Serialize(data_); + } + else if (Command == "Log")//回复请求的信息 { DataRow? _user = MainWindowViewModel.Selet_Row(MainWindowViewModel._userData, "User='" + person?.User + "'"); @@ -218,17 +223,28 @@ namespace SunlightAggregationManager.UserClass data_.Add("UserId", _user?.Field("UserID") ?? ""); data_.Add("UserName", _user?.Field("Name") ?? ""); ret = JsonSerializer.Serialize(data_); - } - if (Command == "SysData")//回复请求的信息 + } + else if (Command == "SysData")//特殊指令数据库查询 { - ret = JsonSerializer.Serialize(data_); + string com_ = deserialized.GetValue("Comm").ToString()!; + string da_ = deserialized.GetValue("Data").ToString()!; + if (com_ == "SYSDB")//本机sqlite数据库 + { + DataTable resultTable = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(da_, null)?.Tables[0] ?? new DataTable(); + ret = JsonSerializer.Serialize(resultTable); + } + else if (com_ == "DBCDB")//系统dbc数据库 + { + DataTable resultTable = await MainWindowViewModel.dataBase.ExecuteQueryAsync(da_); + ret = JsonSerializer.Serialize(resultTable); + } } - if (Command == "ChemicalStatistics")//回复请求的信息 + else if (Command == "ChemicalStatistics")//回复请求的信息 { data_.Add("ChemicalStatistics", Newtonsoft.Json.JsonConvert.SerializeObject(MainWindowViewModel.ChemicalStatistics)); ret = JsonSerializer.Serialize(data_); } - if (Command == "Info")//回复info请求的信息 + else if (Command == "Info")//回复info请求的信息 { var t = ToList(MainWindowViewModel._machines).ToJsonString(); //格式化返回信息 @@ -239,7 +255,7 @@ namespace SunlightAggregationManager.UserClass data_.Add("DyeDissolveNumber", MainWindowViewModel.DyeDissolveNumber.ToString()); ret = JsonSerializer.Serialize(data_); } - if (Command == "Query")//回复Query请求的信息 + else if (Command == "Query")//回复Query请求的信息 { string s_ = deserialized.GetValue("StartTime").ToString()!; string e_ = deserialized.GetValue("EndTime").ToString()!; @@ -251,7 +267,7 @@ namespace SunlightAggregationManager.UserClass data_.Add("Query", Newtonsoft.Json.JsonConvert.SerializeObject(resultTable)); ret = JsonSerializer.Serialize(data_); } - if (Command == "QueryDyelot")//回复QueryDyelot请求的信息 + else if (Command == "QueryDyelot")//回复QueryDyelot请求的信息 { string d_ = deserialized.GetValue("DyelotName").ToString()!; string f_ = deserialized.GetValue("Field").ToString()!; @@ -262,7 +278,7 @@ namespace SunlightAggregationManager.UserClass data_.Add("Query", Newtonsoft.Json.JsonConvert.SerializeObject(resultTable)); ret = JsonSerializer.Serialize(data_); } - if (Command == "QueryDetail")//回复QueryDetail请求的信息 + else if (Command == "QueryDetail")//回复QueryDetail请求的信息 { string d_ = deserialized.GetValue("Dyelot").ToString()!; string r_ = deserialized.GetValue("ReDye").ToString()!; @@ -274,7 +290,7 @@ namespace SunlightAggregationManager.UserClass data_.Add("QueryDetail", Newtonsoft.Json.JsonConvert.SerializeObject(resultTable)); ret = JsonSerializer.Serialize(data_); } - if (Command == "Notification")//回复Notification请求的信息 + else if (Command == "Notification")//回复Notification请求的信息 { string s_; try { s_ = deserialized.GetValue("StartTime").ToString()!; } catch(Exception) { s_ = "0"; } string e_ = deserialized.GetValue("EndTime").ToString()!; @@ -293,7 +309,7 @@ namespace SunlightAggregationManager.UserClass data_.Add("Notification", Newtonsoft.Json.JsonConvert.SerializeObject(resultTable)); ret = JsonSerializer.Serialize(data_); } - if (Command == "InfoMachine")//回复InfoMachine请求的信息 + else if (Command == "InfoMachine")//回复InfoMachine请求的信息 { string t_ = deserialized.GetValue("Type").ToString()!; string? m_ =null, f_ = "*"; @@ -330,7 +346,7 @@ namespace SunlightAggregationManager.UserClass //格式化返回信息 ret = JsonSerializer.Serialize(data_); } - if (Command == "InfoMachineHistory")//回复InfoMachineHistory请求的信息 + else if (Command == "InfoMachineHistory")//回复InfoMachineHistory请求的信息 { string t_ = deserialized.GetValue("Type").ToString()!; string? m_ = null, f_ = "*"; @@ -369,7 +385,7 @@ namespace SunlightAggregationManager.UserClass //格式化返回信息 ret = JsonSerializer.Serialize(data_); } - if (Command == "InfoMachinePipes")//回复Notification请求的信息 + else if (Command == "InfoMachinePipes")//回复Notification请求的信息 { string? m_ = null, f_ = "*"; @@ -383,7 +399,7 @@ namespace SunlightAggregationManager.UserClass //格式化返回信息 ret = JsonSerializer.Serialize(data_); } - if (Command == "SETUSER")//回复请求的信息 + else if (Command == "SETUSER")//回复请求的信息 { MainWindowViewModel.Updata_Memory(MainWindowViewModel._userData, "User='" + deserialized.GetValue("USER").ToString()! + "'" ,