[성현모] Update기능 추가, 중복 유니크키 예외처리 추가
This commit is contained in:
Binary file not shown.
@ -81,12 +81,12 @@ namespace HubX.Library.Socket.Packet
|
||||
bool isJsonRequest = true;
|
||||
|
||||
//convert to object
|
||||
var jsonObject = recvData.ToObject<C2S_INSERT_UniqueKey>();
|
||||
var jsonObject = recvData.ToObject<C2S_SELECT_UniqueKey>();
|
||||
//json 요청 아닐때 변환
|
||||
if (jsonObject == null)
|
||||
{
|
||||
var recvDataList = recvData.Split(",");
|
||||
jsonObject = new C2S_INSERT_UniqueKey
|
||||
jsonObject = new C2S_SELECT_UniqueKey
|
||||
{
|
||||
Identity = recvDataList[0]
|
||||
};
|
||||
@ -128,12 +128,12 @@ namespace HubX.Library.Socket.Packet
|
||||
bool isJsonRequest = true;
|
||||
|
||||
//convert to object
|
||||
var jsonObject = recvData.ToObject<C2S_INSERT_UniqueKey>();
|
||||
var jsonObject = recvData.ToObject<C2S_UPDATE_UniqueKey>();
|
||||
//json 요청 아닐때 변환
|
||||
if (jsonObject == null)
|
||||
{
|
||||
var recvDataList = recvData.Split(",");
|
||||
jsonObject = new C2S_INSERT_UniqueKey
|
||||
jsonObject = new C2S_UPDATE_UniqueKey
|
||||
{
|
||||
Identity = recvDataList[0],
|
||||
Data1 = recvDataList[1],
|
||||
@ -149,7 +149,7 @@ namespace HubX.Library.Socket.Packet
|
||||
//insert DB
|
||||
if (jsonObject != null)
|
||||
{
|
||||
Request_InsertUniqueKey request = new Request_InsertUniqueKey();
|
||||
Request_UpdateUniqueKey request = new Request_UpdateUniqueKey();
|
||||
request.Identity = jsonObject.Identity;
|
||||
request.Data1 = jsonObject.Data1;
|
||||
request.Data2 = jsonObject.Data2;
|
||||
@ -158,7 +158,7 @@ namespace HubX.Library.Socket.Packet
|
||||
request.Data5 = jsonObject.Data5;
|
||||
|
||||
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();
|
||||
|
||||
//json 요청이 아니면 변환
|
||||
@ -174,7 +174,7 @@ namespace HubX.Library.Socket.Packet
|
||||
if (client == null)
|
||||
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);
|
||||
}
|
||||
|
||||
[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;
|
||||
|
||||
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;
|
||||
var context = _efCoreService.GetDBContext<HubXContext>();
|
||||
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);
|
||||
transactionResult = await context.CloseTransactionAsync(transaction);
|
||||
Log4net.WriteLine($"Exist Unique Key", LogType.Error);
|
||||
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
|
||||
if (transactionResult == false)
|
||||
{
|
||||
response.Result = EnumResult.Failed.ToString();
|
||||
Log4net.WriteLine($"Transaction Error", LogType.Error);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log4net.WriteLine($"Transaction Success", LogType.DB);
|
||||
CDateTime = DateTime.Now
|
||||
};
|
||||
|
||||
using (var transaction = await context.CreateTransactionAsync())
|
||||
{
|
||||
await context.AddAsync(storage);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,5 +109,49 @@ namespace HubX.Server.Services
|
||||
|
||||
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