using Azure.Core; using DB.HubXDB; using HubX.Library.Http.Packet; using HubX.Library.Socket.Object; using HubX.Library.Socket.Session; using System; using System.Collections.Generic; using System.Linq; using System.Numerics; using System.Text; using System.Threading.Tasks; using SystemX.Core.Communication; namespace HubX.Library.Socket.Packet { public class PacketHandler { public static async void C2S_INSERT_UniqueKeyHandler(PacketSession session, ArraySegment buffer) { var recvData = Encoding.UTF8.GetString(buffer); //json으로 요청인지 확인 bool isJsonRequest = true; //convert to object var jsonObject = recvData.ToObject(); //json 요청 아닐때 변환 if (jsonObject == null) { var recvDataList = recvData.Split(","); jsonObject = new C2S_INSERT_UniqueKey { Identity = recvDataList[0], Data1 = recvDataList[1], Data2 = recvDataList[2], Data3 = recvDataList[3], Data4 = recvDataList[4], Data5 = recvDataList[5], }; isJsonRequest = false; } string result = string.Empty; //insert DB if(jsonObject != null) { Request_InsertUniqueKey request = new Request_InsertUniqueKey(); request.Identity = jsonObject.Identity; request.Data1 = jsonObject.Data1; request.Data2 = jsonObject.Data2; request.Data3 = jsonObject.Data3; request.Data4 = jsonObject.Data4; request.Data5 = jsonObject.Data5; await Task.Run(async () => { SystemX.Core.Communication.Http http = new(); var res = await http.PostJsonAsync("https://127.0.0.1:9000/UniqueKey/InsertUniqueKey", request); result = res.ToJson(); //json 요청이 아니면 변환 if (isJsonRequest == false) { if (res != null) result = $"{res.Identity},{res.Result}"; } }); } ClientSession clientSession = session as ClientSession; Client client = clientSession.Client; if (client == null) return; client.Session.Send(Encoding.UTF8.GetBytes(result) ,EnumMessageId.S2C_INSERT_UniqueKey); } public static async void C2S_SELECT_UniqueKeyHandler(PacketSession session, ArraySegment buffer) { var recvData = Encoding.UTF8.GetString(buffer); //json으로 요청인지 확인 bool isJsonRequest = true; //convert to object var jsonObject = recvData.ToObject(); //json 요청 아닐때 변환 if (jsonObject == null) { var recvDataList = recvData.Split(","); jsonObject = new C2S_SELECT_UniqueKey { Identity = recvDataList[0] }; isJsonRequest = false; } string result = string.Empty; //select DB if (jsonObject != null) { Request_SelectUniqueKey request = new Request_SelectUniqueKey(); request.Identity = jsonObject.Identity; await Task.Run(async() => { SystemX.Core.Communication.Http http = new(); var res = await http.PostJsonAsync("https://127.0.0.1:9000/UniqueKey/SelectUniqueKey", request); result = res.ToJson(); //json 요청이 아니면 변환 if (isJsonRequest == false) { if (res != null) result = $"{res.Identity},{res.Data1},{res.Data2},{res.Data3},{res.Data4},{res.Data5}"; } }); } ClientSession clientSession = session as ClientSession; Client client = clientSession.Client; if (client == null) return; client.Session.Send(Encoding.UTF8.GetBytes(result), EnumMessageId.S2C_SELECT_UniqueKey); } public static async void C2S_UPDATE_UniqueKeyHandler(PacketSession session, ArraySegment buffer) { var recvData = Encoding.UTF8.GetString(buffer); //json으로 요청인지 확인 bool isJsonRequest = true; //convert to object var jsonObject = recvData.ToObject(); //json 요청 아닐때 변환 if (jsonObject == null) { var recvDataList = recvData.Split(","); jsonObject = new C2S_UPDATE_UniqueKey { Identity = recvDataList[0], Data1 = recvDataList[1], Data2 = recvDataList[2], Data3 = recvDataList[3], Data4 = recvDataList[4], Data5 = recvDataList[5], }; isJsonRequest = false; } string result = string.Empty; //insert DB if (jsonObject != null) { Request_UpdateUniqueKey request = new Request_UpdateUniqueKey(); request.Identity = jsonObject.Identity; request.Data1 = jsonObject.Data1; request.Data2 = jsonObject.Data2; request.Data3 = jsonObject.Data3; request.Data4 = jsonObject.Data4; request.Data5 = jsonObject.Data5; SystemX.Core.Communication.Http http = new(); var res = await http.PostJsonAsync("https://127.0.0.1:9000/UniqueKey/UpdateUniqueKey", request); result = res.ToJson(); //json 요청이 아니면 변환 if (isJsonRequest == false) { if (res != null) result = $"{res.Identity},{res.Result}"; } } ClientSession clientSession = session as ClientSession; Client client = clientSession.Client; if (client == null) return; client.Session.Send(Encoding.UTF8.GetBytes(result), EnumMessageId.S2C_UPDATE_UniqueKey); } } }