[성현모] Update기능 추가, 중복 유니크키 예외처리 추가
This commit is contained in:
Binary file not shown.
@ -81,12 +81,12 @@ namespace HubX.Library.Socket.Packet
|
|||||||
bool isJsonRequest = true;
|
bool isJsonRequest = true;
|
||||||
|
|
||||||
//convert to object
|
//convert to object
|
||||||
var jsonObject = recvData.ToObject<C2S_INSERT_UniqueKey>();
|
var jsonObject = recvData.ToObject<C2S_SELECT_UniqueKey>();
|
||||||
//json 요청 아닐때 변환
|
//json 요청 아닐때 변환
|
||||||
if (jsonObject == null)
|
if (jsonObject == null)
|
||||||
{
|
{
|
||||||
var recvDataList = recvData.Split(",");
|
var recvDataList = recvData.Split(",");
|
||||||
jsonObject = new C2S_INSERT_UniqueKey
|
jsonObject = new C2S_SELECT_UniqueKey
|
||||||
{
|
{
|
||||||
Identity = recvDataList[0]
|
Identity = recvDataList[0]
|
||||||
};
|
};
|
||||||
@ -128,12 +128,12 @@ namespace HubX.Library.Socket.Packet
|
|||||||
bool isJsonRequest = true;
|
bool isJsonRequest = true;
|
||||||
|
|
||||||
//convert to object
|
//convert to object
|
||||||
var jsonObject = recvData.ToObject<C2S_INSERT_UniqueKey>();
|
var jsonObject = recvData.ToObject<C2S_UPDATE_UniqueKey>();
|
||||||
//json 요청 아닐때 변환
|
//json 요청 아닐때 변환
|
||||||
if (jsonObject == null)
|
if (jsonObject == null)
|
||||||
{
|
{
|
||||||
var recvDataList = recvData.Split(",");
|
var recvDataList = recvData.Split(",");
|
||||||
jsonObject = new C2S_INSERT_UniqueKey
|
jsonObject = new C2S_UPDATE_UniqueKey
|
||||||
{
|
{
|
||||||
Identity = recvDataList[0],
|
Identity = recvDataList[0],
|
||||||
Data1 = recvDataList[1],
|
Data1 = recvDataList[1],
|
||||||
@ -149,7 +149,7 @@ namespace HubX.Library.Socket.Packet
|
|||||||
//insert DB
|
//insert DB
|
||||||
if (jsonObject != null)
|
if (jsonObject != null)
|
||||||
{
|
{
|
||||||
Request_InsertUniqueKey request = new Request_InsertUniqueKey();
|
Request_UpdateUniqueKey request = new Request_UpdateUniqueKey();
|
||||||
request.Identity = jsonObject.Identity;
|
request.Identity = jsonObject.Identity;
|
||||||
request.Data1 = jsonObject.Data1;
|
request.Data1 = jsonObject.Data1;
|
||||||
request.Data2 = jsonObject.Data2;
|
request.Data2 = jsonObject.Data2;
|
||||||
@ -158,7 +158,7 @@ namespace HubX.Library.Socket.Packet
|
|||||||
request.Data5 = jsonObject.Data5;
|
request.Data5 = jsonObject.Data5;
|
||||||
|
|
||||||
SystemX.Core.Communication.Http http = new();
|
SystemX.Core.Communication.Http http = new();
|
||||||
var res = await http.PostJsonAsync<Request_InsertUniqueKey, Response_InsertUniqueKy>("https://127.0.0.1:9000/UniqueKey/InsertUniqueKey", request);
|
var res = await http.PostJsonAsync<Request_UpdateUniqueKey, Response_UpdateUniqueKy>("https://127.0.0.1:9000/UniqueKey/UpdateUniqueKey", request);
|
||||||
result = res.ToJson();
|
result = res.ToJson();
|
||||||
|
|
||||||
//json 요청이 아니면 변환
|
//json 요청이 아니면 변환
|
||||||
@ -174,7 +174,7 @@ namespace HubX.Library.Socket.Packet
|
|||||||
if (client == null)
|
if (client == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
client.Session.Send(Encoding.UTF8.GetBytes(result), EnumMessageId.S2C_INSERT_UniqueKey);
|
client.Session.Send(Encoding.UTF8.GetBytes(result), EnumMessageId.S2C_UPDATE_UniqueKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,5 +39,17 @@ namespace HubX.Server.Controllers
|
|||||||
|
|
||||||
return Results.Ok(res);
|
return Results.Ok(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IResult> UpdateUniqueKey(Request_UpdateUniqueKey request)
|
||||||
|
{
|
||||||
|
var guid = Guid.NewGuid();
|
||||||
|
Log4net.WriteLine($"[Requeust]({guid}) UniqueKey/UpdateUniqueKey::{request.ToJson()}", LogType.CONTROLLER);
|
||||||
|
|
||||||
|
Response_UpdateUniqueKy res = await _uniqueKeyService.Request_UpdateUniqueKey(request);
|
||||||
|
Log4net.WriteLine($"[Response]({guid}) UniqueKey/UpdateUniqueKey::{res.ToJson()}", LogType.CONTROLLER);
|
||||||
|
|
||||||
|
return Results.Ok(res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,38 +25,47 @@ namespace HubX.Server.Services
|
|||||||
{
|
{
|
||||||
response.Identity = request.Identity;
|
response.Identity = request.Identity;
|
||||||
|
|
||||||
var storage = new TStorage
|
|
||||||
{
|
|
||||||
CIdentity = request.Identity,
|
|
||||||
CData1 = request.Data1,
|
|
||||||
CData2 = request.Data2,
|
|
||||||
CData3 = request.Data3,
|
|
||||||
CData4 = request.Data4,
|
|
||||||
CData5 = request.Data5,
|
|
||||||
|
|
||||||
CDateTime = DateTime.Now
|
|
||||||
};
|
|
||||||
|
|
||||||
bool transactionResult = true;
|
bool transactionResult = true;
|
||||||
var context = _efCoreService.GetDBContext<HubXContext>();
|
var context = _efCoreService.GetDBContext<HubXContext>();
|
||||||
if (context != null)
|
if (context != null)
|
||||||
{
|
{
|
||||||
using (var transaction = await context.CreateTransactionAsync())
|
var data = context.TStorages.Where(x=>x.CIdentity == request.Identity);
|
||||||
|
if (data?.Count() > 0)
|
||||||
{
|
{
|
||||||
await context.AddAsync(storage);
|
Log4net.WriteLine($"Exist Unique Key", LogType.Error);
|
||||||
transactionResult = await context.CloseTransactionAsync(transaction);
|
response.Result = "Exist Unique Key";
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
|
var storage = new TStorage
|
||||||
|
{
|
||||||
|
CIdentity = request.Identity,
|
||||||
|
CData1 = request.Data1,
|
||||||
|
CData2 = request.Data2,
|
||||||
|
CData3 = request.Data3,
|
||||||
|
CData4 = request.Data4,
|
||||||
|
CData5 = request.Data5,
|
||||||
|
|
||||||
//db error
|
CDateTime = DateTime.Now
|
||||||
if (transactionResult == false)
|
};
|
||||||
{
|
|
||||||
response.Result = EnumResult.Failed.ToString();
|
using (var transaction = await context.CreateTransactionAsync())
|
||||||
Log4net.WriteLine($"Transaction Error", LogType.Error);
|
{
|
||||||
}
|
await context.AddAsync(storage);
|
||||||
else
|
transactionResult = await context.CloseTransactionAsync(transaction);
|
||||||
{
|
}
|
||||||
Log4net.WriteLine($"Transaction Success", LogType.DB);
|
|
||||||
|
//db error
|
||||||
|
if (transactionResult == false)
|
||||||
|
{
|
||||||
|
response.Result = EnumResult.Failed.ToString();
|
||||||
|
Log4net.WriteLine($"Transaction Error", LogType.Error);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log4net.WriteLine($"Transaction Success", LogType.DB);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,5 +109,49 @@ namespace HubX.Server.Services
|
|||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<Response_UpdateUniqueKy> Request_UpdateUniqueKey(Request_UpdateUniqueKey request)
|
||||||
|
{
|
||||||
|
Response_UpdateUniqueKy response = new Response_UpdateUniqueKy();
|
||||||
|
|
||||||
|
if (request != null)
|
||||||
|
{
|
||||||
|
response.Identity = request.Identity;
|
||||||
|
|
||||||
|
bool transactionResult = true;
|
||||||
|
var context = _efCoreService.GetDBContext<HubXContext>();
|
||||||
|
if (context != null)
|
||||||
|
{
|
||||||
|
var selected = context.TStorages.First(x => x.CIdentity == request.Identity);
|
||||||
|
if (selected != null)
|
||||||
|
{
|
||||||
|
selected.CData1 = request.Data1;
|
||||||
|
selected.CData2 = request.Data2;
|
||||||
|
selected.CData3 = request.Data3;
|
||||||
|
selected.CData4 = request.Data4;
|
||||||
|
selected.CData5 = request.Data5;
|
||||||
|
|
||||||
|
using (var transaction = await context.CreateTransactionAsync())
|
||||||
|
{
|
||||||
|
context.Update(selected);
|
||||||
|
transactionResult = await context.CloseTransactionAsync(transaction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//db error
|
||||||
|
if (transactionResult == false)
|
||||||
|
{
|
||||||
|
response.Result = EnumResult.Failed.ToString();
|
||||||
|
Log4net.WriteLine($"Transaction Error", LogType.Error);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log4net.WriteLine($"Transaction Success", LogType.DB);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user