feat: 품목정보 상세 패널 추가 및 프로젝트/근태/권한 기능 확장
- Items: 우측에 이미지, 담당자, 입고/발주내역 패널 추가 (fItems 윈폼 동일) - Project: 목록 및 상세 다이얼로그 구현 - Kuntae: 오류검사/수정 기능 추가 - UserAuth: 사용자 권한 관리 페이지 추가 - UserGroup: 그룹정보 다이얼로그로 전환 - Header: 사용자 메뉴 서브메뉴 방향 수정, 즐겨찾기 기능 - Backend API: Items 상세/담당자/구매내역, 근태 오류검사, 프로젝트 목록 등 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -411,6 +411,14 @@ namespace Project.Web
|
||||
}
|
||||
break;
|
||||
|
||||
case "FAVORITE_GET_LIST":
|
||||
{
|
||||
string result = _bridge.Favorite_GetList();
|
||||
var response = new { type = "FAVORITE_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== Items API =====
|
||||
case "ITEMS_GET_CATEGORIES":
|
||||
{
|
||||
@@ -460,6 +468,70 @@ namespace Project.Web
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_GET_IMAGE":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string result = _bridge.Items_GetImage(idx);
|
||||
var response = new { type = "ITEMS_IMAGE_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_SAVE_IMAGE":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string base64Image = json.base64Image ?? "";
|
||||
string result = _bridge.Items_SaveImage(idx, base64Image);
|
||||
var response = new { type = "ITEMS_IMAGE_SAVED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_DELETE_IMAGE":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string result = _bridge.Items_DeleteImage(idx);
|
||||
var response = new { type = "ITEMS_IMAGE_DELETED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_GET_DETAIL":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string result = _bridge.Items_GetDetail(idx);
|
||||
var response = new { type = "ITEMS_DETAIL_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_GET_SUPPLIER_STAFF":
|
||||
{
|
||||
int supplyIdx = json.supplyIdx ?? 0;
|
||||
string result = _bridge.Items_GetSupplierStaff(supplyIdx);
|
||||
var response = new { type = "ITEMS_SUPPLIER_STAFF_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_GET_INCOMING_HISTORY":
|
||||
{
|
||||
int itemIdx = json.itemIdx ?? 0;
|
||||
string result = _bridge.Items_GetIncomingHistory(itemIdx);
|
||||
var response = new { type = "ITEMS_INCOMING_HISTORY_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "ITEMS_GET_ORDER_HISTORY":
|
||||
{
|
||||
int itemIdx = json.itemIdx ?? 0;
|
||||
string result = _bridge.Items_GetOrderHistory(itemIdx);
|
||||
var response = new { type = "ITEMS_ORDER_HISTORY_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== UserList API =====
|
||||
case "USERLIST_GET_CURRENT_LEVEL":
|
||||
{
|
||||
@@ -563,9 +635,10 @@ namespace Project.Web
|
||||
{
|
||||
string pdate = json.pdate ?? "";
|
||||
string projectName = json.projectName ?? "";
|
||||
int pidx = json.pidx ?? -1;
|
||||
string requestpart = json.requestpart ?? "";
|
||||
string package = json.package ?? "";
|
||||
string type1 = json.type ?? "";
|
||||
string jobType = json.jobType ?? ""; // type -> jobType (WebSocket type 필드 충돌 방지)
|
||||
string process = json.process ?? "";
|
||||
string status = json.status ?? "진행 완료";
|
||||
string description = json.description ?? "";
|
||||
@@ -573,7 +646,7 @@ namespace Project.Web
|
||||
double ot = json.ot ?? 0.0;
|
||||
string jobgrp = json.jobgrp ?? "";
|
||||
string tag = json.tag ?? "";
|
||||
string result = _bridge.Jobreport_Add(pdate, projectName, requestpart, package, type1, process, status, description, hrs, ot, jobgrp, tag);
|
||||
string result = _bridge.Jobreport_Add(pdate, projectName, pidx, requestpart, package, jobType, process, status, description, hrs, ot, jobgrp, tag);
|
||||
var response = new { type = "JOBREPORT_ADDED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
@@ -584,9 +657,10 @@ namespace Project.Web
|
||||
int idx = json.idx ?? 0;
|
||||
string pdate = json.pdate ?? "";
|
||||
string projectName = json.projectName ?? "";
|
||||
int pidx = json.pidx ?? -1;
|
||||
string requestpart = json.requestpart ?? "";
|
||||
string package = json.package ?? "";
|
||||
string type2 = json.type ?? "";
|
||||
string jobType = json.jobType ?? ""; // type -> jobType (WebSocket type 필드 충돌 방지)
|
||||
string process = json.process ?? "";
|
||||
string status = json.status ?? "";
|
||||
string description = json.description ?? "";
|
||||
@@ -594,7 +668,7 @@ namespace Project.Web
|
||||
double ot = json.ot ?? 0.0;
|
||||
string jobgrp = json.jobgrp ?? "";
|
||||
string tag = json.tag ?? "";
|
||||
string result = _bridge.Jobreport_Edit(idx, pdate, projectName, requestpart, package, type2, process, status, description, hrs, ot, jobgrp, tag);
|
||||
string result = _bridge.Jobreport_Edit(idx, pdate, projectName, pidx, requestpart, package, jobType, process, status, description, hrs, ot, jobgrp, tag);
|
||||
var response = new { type = "JOBREPORT_EDITED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
@@ -635,6 +709,354 @@ namespace Project.Web
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== Kuntae API =====
|
||||
case "GET_KUNTAE_LIST":
|
||||
{
|
||||
string sd = json.sd ?? "";
|
||||
string ed = json.ed ?? "";
|
||||
string result = _bridge.Kuntae_GetList(sd, ed);
|
||||
var response = new { type = "KUNTAE_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "DELETE_KUNTAE":
|
||||
{
|
||||
int id = json.id ?? 0;
|
||||
string result = _bridge.Kuntae_Delete(id);
|
||||
var response = new { type = "KUNTAE_DELETED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== Holiday API (월별근무표) =====
|
||||
case "HOLIDAY_GET_LIST":
|
||||
{
|
||||
string month = json.month ?? "";
|
||||
string result = _bridge.Holiday_GetList(month);
|
||||
var response = new { type = "HOLIDAY_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "HOLIDAY_SAVE":
|
||||
{
|
||||
string month = json.month ?? "";
|
||||
string holidaysJson = JsonConvert.SerializeObject(json.holidays);
|
||||
string result = _bridge.Holiday_Save(month, holidaysJson);
|
||||
var response = new { type = "HOLIDAY_SAVED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "HOLIDAY_INITIALIZE":
|
||||
{
|
||||
string month = json.month ?? "";
|
||||
string result = _bridge.Holiday_Initialize(month);
|
||||
var response = new { type = "HOLIDAY_INITIALIZED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== MailForm API (메일양식) =====
|
||||
case "MAILFORM_GET_LIST":
|
||||
{
|
||||
string result = _bridge.MailForm_GetList();
|
||||
var response = new { type = "MAILFORM_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "MAILFORM_GET_DETAIL":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string result = _bridge.MailForm_GetDetail(idx);
|
||||
var response = new { type = "MAILFORM_DETAIL_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "MAILFORM_ADD":
|
||||
{
|
||||
string cate = json.cate ?? "";
|
||||
string title = json.title ?? "";
|
||||
string tolist = json.tolist ?? "";
|
||||
string bcc = json.bcc ?? "";
|
||||
string cc = json.cc ?? "";
|
||||
string subject = json.subject ?? "";
|
||||
string tail = json.tail ?? "";
|
||||
string body = json.body ?? "";
|
||||
bool selfTo = json.selfTo ?? false;
|
||||
bool selfCC = json.selfCC ?? false;
|
||||
bool selfBCC = json.selfBCC ?? false;
|
||||
string exceptmail = json.exceptmail ?? "";
|
||||
string exceptmailcc = json.exceptmailcc ?? "";
|
||||
string result = _bridge.MailForm_Add(cate, title, tolist, bcc, cc, subject, tail, body, selfTo, selfCC, selfBCC, exceptmail, exceptmailcc);
|
||||
var response = new { type = "MAILFORM_ADDED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "MAILFORM_EDIT":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string cate = json.cate ?? "";
|
||||
string title = json.title ?? "";
|
||||
string tolist = json.tolist ?? "";
|
||||
string bcc = json.bcc ?? "";
|
||||
string cc = json.cc ?? "";
|
||||
string subject = json.subject ?? "";
|
||||
string tail = json.tail ?? "";
|
||||
string body = json.body ?? "";
|
||||
bool selfTo = json.selfTo ?? false;
|
||||
bool selfCC = json.selfCC ?? false;
|
||||
bool selfBCC = json.selfBCC ?? false;
|
||||
string exceptmail = json.exceptmail ?? "";
|
||||
string exceptmailcc = json.exceptmailcc ?? "";
|
||||
string result = _bridge.MailForm_Edit(idx, cate, title, tolist, bcc, cc, subject, tail, body, selfTo, selfCC, selfBCC, exceptmail, exceptmailcc);
|
||||
var response = new { type = "MAILFORM_EDITED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "MAILFORM_DELETE":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string result = _bridge.MailForm_Delete(idx);
|
||||
var response = new { type = "MAILFORM_DELETED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== UserGroup API (그룹정보/권한설정) =====
|
||||
case "USERGROUP_GET_LIST":
|
||||
{
|
||||
string result = _bridge.UserGroup_GetList();
|
||||
var response = new { type = "USERGROUP_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERGROUP_ADD":
|
||||
{
|
||||
string dept = json.dept ?? "";
|
||||
string path_kj = json.path_kj ?? "";
|
||||
int permission = json.permission ?? 1;
|
||||
bool advpurchase = json.advpurchase ?? false;
|
||||
bool advkisul = json.advkisul ?? false;
|
||||
string managerinfo = json.managerinfo ?? "";
|
||||
string devinfo = json.devinfo ?? "";
|
||||
bool usemail = json.usemail ?? false;
|
||||
string result = _bridge.UserGroup_Add(dept, path_kj, permission, advpurchase, advkisul, managerinfo, devinfo, usemail);
|
||||
var response = new { type = "USERGROUP_ADDED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERGROUP_EDIT":
|
||||
{
|
||||
string originalDept = json.originalDept ?? "";
|
||||
string dept = json.dept ?? "";
|
||||
string path_kj = json.path_kj ?? "";
|
||||
int permission = json.permission ?? 1;
|
||||
bool advpurchase = json.advpurchase ?? false;
|
||||
bool advkisul = json.advkisul ?? false;
|
||||
string managerinfo = json.managerinfo ?? "";
|
||||
string devinfo = json.devinfo ?? "";
|
||||
bool usemail = json.usemail ?? false;
|
||||
string result = _bridge.UserGroup_Edit(originalDept, dept, path_kj, permission, advpurchase, advkisul, managerinfo, devinfo, usemail);
|
||||
var response = new { type = "USERGROUP_EDITED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERGROUP_DELETE":
|
||||
{
|
||||
string dept = json.dept ?? "";
|
||||
string result = _bridge.UserGroup_Delete(dept);
|
||||
var response = new { type = "USERGROUP_DELETED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERGROUP_GET_PERMISSION_INFO":
|
||||
{
|
||||
string result = _bridge.UserGroup_GetPermissionInfo();
|
||||
var response = new { type = "USERGROUP_PERMISSION_INFO", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== UserAuth API (사용자 권한) =====
|
||||
case "USERAUTH_CAN_ACCESS":
|
||||
{
|
||||
string result = _bridge.UserAuth_CanAccess();
|
||||
var response = new { type = "USERAUTH_CAN_ACCESS_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERAUTH_GET_LIST":
|
||||
{
|
||||
string result = _bridge.UserAuth_GetList();
|
||||
var response = new { type = "USERAUTH_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERAUTH_SAVE":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string user = json.user ?? "";
|
||||
int account = json.account ?? 0;
|
||||
int purchase = json.purchase ?? 0;
|
||||
int purchaseEB = json.purchaseEB ?? 0;
|
||||
int holyday = json.holyday ?? 0;
|
||||
int project = json.project ?? 0;
|
||||
int jobreport = json.jobreport ?? 0;
|
||||
int scheapp = json.scheapp ?? 0;
|
||||
int equipment = json.equipment ?? 0;
|
||||
int otconfirm = json.otconfirm ?? 0;
|
||||
int holyreq = json.holyreq ?? 0;
|
||||
int kuntae = json.kuntae ?? 0;
|
||||
string result = _bridge.UserAuth_Save(idx, user, account, purchase, purchaseEB, holyday, project, jobreport, scheapp, equipment, otconfirm, holyreq, kuntae);
|
||||
var response = new { type = "USERAUTH_SAVED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERAUTH_DELETE":
|
||||
{
|
||||
int idx = json.idx ?? 0;
|
||||
string result = _bridge.UserAuth_Delete(idx);
|
||||
var response = new { type = "USERAUTH_DELETED", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "USERAUTH_GET_FIELDS":
|
||||
{
|
||||
string result = _bridge.UserAuth_GetFields();
|
||||
var response = new { type = "USERAUTH_FIELDS_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== 범용 권한 체크 API =====
|
||||
case "CHECK_AUTH":
|
||||
{
|
||||
string authType = json.authType ?? "";
|
||||
int requiredLevel = json.requiredLevel ?? 5;
|
||||
string result = _bridge.CheckAuth(authType, requiredLevel);
|
||||
var response = new { type = "CHECK_AUTH_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "GET_MY_AUTH":
|
||||
{
|
||||
string result = _bridge.GetMyAuth();
|
||||
var response = new { type = "MY_AUTH_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== 프로젝트 검색 API (업무일지용) =====
|
||||
case "PROJECT_SEARCH":
|
||||
{
|
||||
string keyword = json.keyword ?? "";
|
||||
string result = _bridge.Project_Search(keyword);
|
||||
var response = new { type = "PROJECT_SEARCH_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "PROJECT_GET_USER_PROJECTS":
|
||||
{
|
||||
string result = _bridge.Project_GetUserProjects();
|
||||
var response = new { type = "PROJECT_USER_PROJECTS_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "PROJECT_GET_CATEGORIES":
|
||||
{
|
||||
string result = _bridge.Project_GetCategories();
|
||||
var response = new { type = "PROJECT_CATEGORIES_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "PROJECT_GET_PROCESSES":
|
||||
{
|
||||
string result = _bridge.Project_GetProcesses();
|
||||
var response = new { type = "PROJECT_PROCESSES_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "PROJECT_GET_LIST":
|
||||
{
|
||||
string statusFilter = json.statusFilter ?? "";
|
||||
string category = json.category ?? "";
|
||||
string process = json.process ?? "";
|
||||
string userFilter = json.userFilter ?? "";
|
||||
string yearStart = json.yearStart ?? "";
|
||||
string yearEnd = json.yearEnd ?? "";
|
||||
string dateType = json.dateType ?? "0";
|
||||
string result = _bridge.Project_GetList(statusFilter, category, process, userFilter, yearStart, yearEnd, dateType);
|
||||
var response = new { type = "PROJECT_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "PROJECT_GET_HISTORY":
|
||||
{
|
||||
int projectIdx = json.projectIdx ?? 0;
|
||||
string result = _bridge.Project_GetHistory(projectIdx);
|
||||
var response = new { type = "PROJECT_HISTORY_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "PROJECT_GET_DAILY_MEMO":
|
||||
{
|
||||
int projectIdx = json.projectIdx ?? 0;
|
||||
string result = _bridge.Project_GetDailyMemo(projectIdx);
|
||||
var response = new { type = "PROJECT_DAILY_MEMO_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
// ===== 근태 오류검사 API =====
|
||||
case "KUNTAE_ERROR_CHECK":
|
||||
{
|
||||
string sd = json.sd ?? "";
|
||||
string ed = json.ed ?? "";
|
||||
string result = _bridge.Kuntae_ErrorCheck(sd, ed);
|
||||
var response = new { type = "KUNTAE_ERROR_CHECK_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "KUNTAE_FIX_ERROR":
|
||||
{
|
||||
string pdate = json.pdate ?? "";
|
||||
string result = _bridge.Kuntae_FixError(pdate);
|
||||
var response = new { type = "KUNTAE_FIX_ERROR_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
case "KUNTAE_FIX_ERRORS":
|
||||
{
|
||||
string dates = JsonConvert.SerializeObject(json.dates);
|
||||
string result = _bridge.Kuntae_FixErrors(dates);
|
||||
var response = new { type = "KUNTAE_FIX_ERRORS_DATA", data = JsonConvert.DeserializeObject(result) };
|
||||
await Send(socket, JsonConvert.SerializeObject(response));
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
Console.WriteLine($"[WS] Unknown message type: {type}");
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user