179 lines
6.7 KiB
C#
179 lines
6.7 KiB
C#
using System.Text;
|
|
using SystemX.Core.Communication;
|
|
using WebApi.Project.UniqueKeyApi.Models;
|
|
using WebApi.Project.UniqueKeyApi.Socket.Object;
|
|
using WebApi.Project.UniqueKeyApi.Socket.Session;
|
|
|
|
namespace WebApi.Project.UniqueKeyApi.Socket.Packet
|
|
{
|
|
public class PacketHandler
|
|
{
|
|
public static async void C2S_INSERT_UniqueKeyHandler(PacketSession session, ArraySegment<byte> buffer)
|
|
{
|
|
var recvData = Encoding.UTF8.GetString(buffer);
|
|
|
|
//json으로 요청인지 확인
|
|
bool isJsonRequest = true;
|
|
|
|
//convert to object
|
|
var jsonObject = recvData.ToObject<C2S_INSERT_UniqueKey>();
|
|
//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<Request_InsertUniqueKey, Response_InsertUniqueKy>("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<byte> buffer)
|
|
{
|
|
var recvData = Encoding.UTF8.GetString(buffer);
|
|
|
|
//json으로 요청인지 확인
|
|
bool isJsonRequest = true;
|
|
|
|
//convert to object
|
|
var jsonObject = recvData.ToObject<C2S_SELECT_UniqueKey>();
|
|
//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<Request_SelectUniqueKey, Response_SelectUniqueKy>("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<byte> buffer)
|
|
{
|
|
var recvData = Encoding.UTF8.GetString(buffer);
|
|
|
|
//json으로 요청인지 확인
|
|
bool isJsonRequest = true;
|
|
|
|
//convert to object
|
|
var jsonObject = recvData.ToObject<C2S_UPDATE_UniqueKey>();
|
|
//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<Request_UpdateUniqueKey, Response_UpdateUniqueKy>("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);
|
|
}
|
|
}
|
|
}
|