[성현모] DB Connection 수정
This commit is contained in:
Binary file not shown.
@ -1,11 +1,14 @@
|
|||||||
|
using DB.HubXDB;
|
||||||
using HubX.Library.Config;
|
using HubX.Library.Config;
|
||||||
using HubX.Library.Socket.Session;
|
using HubX.Library.Socket.Session;
|
||||||
using HubX.Server;
|
using HubX.Server;
|
||||||
using HubX.Server.Services;
|
using HubX.Server.Services;
|
||||||
using HubX.Server.TaskManager;
|
using HubX.Server.TaskManager;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using SystemX.Core.Communication;
|
using SystemX.Core.Communication;
|
||||||
|
using SystemX.Core.DB;
|
||||||
using SystemX.Core.Services;
|
using SystemX.Core.Services;
|
||||||
|
|
||||||
string configDir = @"../Config";
|
string configDir = @"../Config";
|
||||||
@ -49,6 +52,8 @@ else
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
builder.Services.AddDbContext<HubXContext>();
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
//read api config and set
|
//read api config and set
|
||||||
|
|||||||
@ -3,7 +3,9 @@ using HubX.Library.Enums;
|
|||||||
using HubX.Library.Http.Packet;
|
using HubX.Library.Http.Packet;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Identity.Client.Extensions.Msal;
|
using Microsoft.Identity.Client.Extensions.Msal;
|
||||||
|
using System;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.Xml;
|
||||||
using SystemX.Core.DB;
|
using SystemX.Core.DB;
|
||||||
|
|
||||||
namespace HubX.Server.Services
|
namespace HubX.Server.Services
|
||||||
@ -11,10 +13,12 @@ namespace HubX.Server.Services
|
|||||||
public class UniqueKeyService
|
public class UniqueKeyService
|
||||||
{
|
{
|
||||||
private readonly EFCoreService _efCoreService;
|
private readonly EFCoreService _efCoreService;
|
||||||
|
private readonly IServiceScopeFactory _scopeFactory;
|
||||||
|
|
||||||
public UniqueKeyService(EFCoreService efCoreService)
|
public UniqueKeyService(EFCoreService efCoreService, IServiceScopeFactory scopeFactory)
|
||||||
{
|
{
|
||||||
_efCoreService = efCoreService;
|
_efCoreService = efCoreService;
|
||||||
|
_scopeFactory = scopeFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Response_InsertUniqueKy> Request_InsertUniqueKey(Request_InsertUniqueKey request)
|
public async Task<Response_InsertUniqueKy> Request_InsertUniqueKey(Request_InsertUniqueKey request)
|
||||||
@ -25,48 +29,50 @@ namespace HubX.Server.Services
|
|||||||
{
|
{
|
||||||
response.Identity = request.Identity;
|
response.Identity = request.Identity;
|
||||||
|
|
||||||
bool transactionResult = true;
|
bool transactionResult = true;
|
||||||
var context = _efCoreService.GetDBContext<HubXContext>();
|
using (var scope = _scopeFactory.CreateScope())
|
||||||
if (context != null)
|
|
||||||
{
|
{
|
||||||
var data = context.TStorages.Where(x=>x.CIdentity == request.Identity);
|
var context = scope.ServiceProvider.GetRequiredService<HubXContext>();
|
||||||
if (data?.Count() > 0)
|
if (context != null)
|
||||||
{
|
{
|
||||||
Log4net.WriteLine($"Exist Unique Key", LogType.Error);
|
var data = context.TStorages.AsNoTracking().Where(x => x.CIdentity == request.Identity).ToList();
|
||||||
response.Result = "Exist Unique Key";
|
if (data?.Count() > 0)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var storage = new TStorage
|
|
||||||
{
|
{
|
||||||
CIdentity = request.Identity,
|
Log4net.WriteLine($"Exist Unique Key", LogType.Error);
|
||||||
CData1 = request.Data1,
|
response.Result = "Exist Unique Key";
|
||||||
CData2 = request.Data2,
|
|
||||||
CData3 = request.Data3,
|
|
||||||
CData4 = request.Data4,
|
|
||||||
CData5 = request.Data5,
|
|
||||||
|
|
||||||
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
|
else
|
||||||
{
|
{
|
||||||
Log4net.WriteLine($"Transaction Success", LogType.DB);
|
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
|
||||||
|
};
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
@ -79,31 +85,33 @@ namespace HubX.Server.Services
|
|||||||
if (request != null)
|
if (request != null)
|
||||||
{
|
{
|
||||||
response.Identity = request.Identity;
|
response.Identity = request.Identity;
|
||||||
|
using (var scope = _scopeFactory.CreateScope())
|
||||||
var context = _efCoreService.GetDBContext<HubXContext>();
|
{
|
||||||
if (context != null)
|
var context = scope.ServiceProvider.GetRequiredService<HubXContext>();
|
||||||
{
|
if (context != null)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
using (var transaction = await context.CreateTransactionAsync(IsolationLevel.ReadUncommitted))
|
try
|
||||||
{
|
{
|
||||||
var data = context.TStorages.AsNoTracking().First(x=>x.CIdentity == request.Identity);
|
using (var transaction = await context.CreateTransactionAsync(IsolationLevel.ReadUncommitted))
|
||||||
await context.CloseTransactionAsync(transaction);
|
|
||||||
if(data != null)
|
|
||||||
{
|
{
|
||||||
response.Data1 = data.CData1;
|
var data = context.TStorages.AsNoTracking().ToList().First(x => x.CIdentity == request.Identity);
|
||||||
response.Data2 = data.CData2;
|
await context.CloseTransactionAsync(transaction);
|
||||||
response.Data3 = data.CData3;
|
if (data != null)
|
||||||
response.Data4 = data.CData4;
|
{
|
||||||
response.Data5 = data.CData5;
|
response.Data1 = data.CData1;
|
||||||
|
response.Data2 = data.CData2;
|
||||||
|
response.Data3 = data.CData3;
|
||||||
|
response.Data4 = data.CData4;
|
||||||
|
response.Data5 = data.CData5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Log4net.WriteLine($"Select Unique Key Transaction Error", LogType.Error);
|
||||||
|
Log4net.WriteLine(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Log4net.WriteLine($"Select Unique Key Transaction Error", LogType.Error);
|
|
||||||
Log4net.WriteLine(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,35 +127,39 @@ namespace HubX.Server.Services
|
|||||||
response.Identity = request.Identity;
|
response.Identity = request.Identity;
|
||||||
|
|
||||||
bool transactionResult = true;
|
bool transactionResult = true;
|
||||||
var context = _efCoreService.GetDBContext<HubXContext>();
|
|
||||||
if (context != null)
|
using (var scope = _scopeFactory.CreateScope())
|
||||||
{
|
{
|
||||||
var selected = context.TStorages.First(x => x.CIdentity == request.Identity);
|
var context = scope.ServiceProvider.GetRequiredService<HubXContext>();
|
||||||
if (selected != null)
|
if (context != null)
|
||||||
{
|
{
|
||||||
selected.CData1 = request.Data1;
|
var selected = context.TStorages.First(x => x.CIdentity == request.Identity);
|
||||||
selected.CData2 = request.Data2;
|
if (selected != null)
|
||||||
selected.CData3 = request.Data3;
|
|
||||||
selected.CData4 = request.Data4;
|
|
||||||
selected.CData5 = request.Data5;
|
|
||||||
|
|
||||||
using (var transaction = await context.CreateTransactionAsync())
|
|
||||||
{
|
{
|
||||||
context.Update(selected);
|
selected.CData1 = request.Data1;
|
||||||
transactionResult = await context.CloseTransactionAsync(transaction);
|
selected.CData2 = request.Data2;
|
||||||
}
|
selected.CData3 = request.Data3;
|
||||||
}
|
selected.CData4 = request.Data4;
|
||||||
}
|
selected.CData5 = request.Data5;
|
||||||
|
|
||||||
//db error
|
using (var transaction = await context.CreateTransactionAsync())
|
||||||
if (transactionResult == false)
|
{
|
||||||
{
|
context.Update(selected);
|
||||||
response.Result = EnumResult.Failed.ToString();
|
transactionResult = await context.CloseTransactionAsync(transaction);
|
||||||
Log4net.WriteLine($"Transaction Error", LogType.Error);
|
}
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
|
||||||
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user