Files
ssg_rest_server/ssgrestserver/request/6월추가개발/공지CRUD.cs
2026-04-01 20:16:50 +09:00

164 lines
6.4 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using ssgrestserver.request;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace ssgrestserver
{
class CRUD : ARequestObject, INeedKeyRequest
{
string mRequestURL = "/mfront/mobile/broadtalkNotice?";
DBManager mDB = DBManager.getInstance();
public void setNeedKeys()
{
mNeedKeyList.Add("seqGFrameNo");
mNeedKeyList.Add("noticeAction");
mNeedKeyList.Add("vriNoticeNo");
mNeedKeyList.Add("content");
mNeedKeyList.Add("nickName");
mNeedKeyList.Add("insertDate");
mNeedKeyList.Add("보낸사람");
}
protected override string startUpdateWork()
{
mIsSendTypeGet = false;
string bufURLDataString = "";
//mAccessableDictionary = DataCenter.getInstance().getData(DataCenter.관리중인데이터들배열.CRUD데이터);
string bufFrameNumber = mRequestParameterKVPairList["seqGFrameNo"];
string bufNoticeNumber = mRequestParameterKVPairList["vriNoticeNo"];
if (mRequestParameterKVPairList["noticeAction"] == "S")
{
DataSet bufDataSet = mDB.sendSelectQuery(
$"select * from ssgCRUD where seqGFrameNo='{bufFrameNumber}' and vriNoticeNo='{bufNoticeNumber}'"
);
if (bufDataSet.Tables[0].Rows.Count != 0)
{
//return JsonConvert.SerializeObject(bufDataSet.Tables[0]["payload"]);
return JObject.Parse(bufDataSet.Tables[0].Rows[0]["payload"].ToString()).ToString(Newtonsoft.Json.Formatting.None);
}
else
{
return "조회되지 않는 S 요청인의 정보(보낸프레임번호에 데이터가 없음)";
}
/* if (mAccessableDictionary.ContainsKey(mRequestParameterKVPairList["seqGFrameNo"]))
{
return mAccessableDictionary[mRequestParameterKVPairList["seqGFrameNo"]].ToString(Newtonsoft.Json.Formatting.None);
}
else
{
return "조회되지 않는 S 요청인의 정보(보낸프레임번호에 데이터가 없음)";
}*/
}
else
{
foreach (KeyValuePair<string, string> item in mRequestParameterKVPairList)
{
//bufURLDataString += item.Key + @"=" + item.Value + @"&";
if (item.Key == "content")
{
bufURLDataString += item.Key + @"=" + DataCenter.getInstance().interpritURL(item.Value) + @"&";
}
else
{
bufURLDataString += item.Key + @"=" + item.Value + @"&";
}
}
bufURLDataString = bufURLDataString.Substring(0, bufURLDataString.Length - 1);
JObject receiveData = JObject.Parse(httpRequest(mRequestURL + bufURLDataString));
receiveData.Add("조회시간", DateTime.Now.ToString());
// receiveData.Add("보낸사람", mRequestParameterKVPairList["보낸사람"]);
//if (!mAccessableDictionary.ContainsKey(mRequestParameterKVPairList["seqGFrameNo"]))
//{
//mAccessableDictionary.Add(mRequestParameterKVPairList["seqGFrameNo"], new JObject());
//}
//요청이 제거였을경우 그동안 관리해온 인자값을 제거하고 서버의 상태를 리턴.
if (mRequestParameterKVPairList["noticeAction"] == "D" && receiveData["message"].ToString() == "SUCCESS")
{
mDB.sendInsertQuery($"Delete From ssgCRUD where seqGFrameNo='{bufFrameNumber}' and vriNoticeNo='{bufNoticeNumber}'");
//if (mAccessableDictionary.ContainsKey(mRequestParameterKVPairList["seqGFrameNo"]))
//{
// mAccessableDictionary.Remove(mRequestParameterKVPairList["seqGFrameNo"]);
// return receiveData.ToString();
//}
//else
//{
// return "조회되지 않는 D 요청인의 정보(보낸프레임번호에 데이터가 없음)";
//}
return receiveData.ToString();
}
foreach (var item in mRequestParameterKVPairList)
{
if (receiveData.ContainsKey(item.Key))
{
if (item.Key == "content")
{
receiveData[item.Key] = DataCenter.getInstance().interpritURL(item.Value, true);
}
else
{
receiveData[item.Key] = item.Value;
}
}
else
{
if (item.Key == "content")
{
receiveData.Add(item.Key, DataCenter.getInstance().interpritURL(item.Value, true));
}
else
{
receiveData.Add(item.Key, item.Value);
}
}
}
//mAccessableDictionary[mRequestParameterKVPairList["seqGFrameNo"]] = receiveData;
string bufPayload = receiveData.ToString(Newtonsoft.Json.Formatting.None).Replace("'", "''");
mDB.sendInsertQuery(
//$"insert into ssgCRUD (seqGFrameNo, vriNoticeNo, payload) VALUES ('{bufFrameNumber}','{bufNoticeNumber}', '{bufPayload}') "
//+ $" ON CONFLICT(seqGFrameNo, vriNoticeNo) DO UPDATE SET payload='{bufPayload}';");
$"replace into ssgCRUD (seqGFrameNo, vriNoticeNo, payload) VALUES ('{bufFrameNumber}','{bufNoticeNumber}', '{bufPayload}') "
);
return receiveData.ToString(Newtonsoft.Json.Formatting.None);
}
}
}
}