File name
Commit message
Commit date
using System;
using System.Data.SqlClient;
using Newtonsoft.Json.Linq;
using RestSharp;
using System.Collections;
namespace LogSendCSharp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Smart Facory Log Send Program");
DBConnection();
}
static void Post(string url,string message,out string code,out string rslt)
{
var client = new RestClient(url);
var request = new RestRequest();
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddBody(message);
request.Method = Method.Post;
var response = client.Execute(request);
//Console.WriteLine(response.Content);
JObject jobj = JObject.Parse(response.Content);
code = jobj.GetValue("result")["recptnRsltCd"].ToString();
rslt = jobj.GetValue("result")["recptnRslt"].ToString();
}
static void DBConnection()
{
string strConn = "Data Source=signus-smes.koreacentral.cloudapp.azure.com,14443;Initial Catalog=U3SMESHV;User ID=hvsmes;Password=u3hvsmes;";
SqlConnection conn = null;
ArrayList arrList = new ArrayList();
try
{
conn = new SqlConnection(strConn);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from T_SYS_LOG_SF WHERE SEND_YN= 'N' ORDER BY idx";
SqlDataReader rdr = cmd.ExecuteReader();
JArray jarr = new JArray();
int idx = 0;
while (rdr.Read())
{
JObject obj = new JObject();
idx = int.Parse(rdr["idx"].ToString());
arrList.Add(idx);
string crtfcKey = rdr["crtfcKey"].ToString();
string logDt = rdr["logDt"].ToString();
string useSe = rdr["useSe"].ToString();
string sysUser = rdr["sysUser"].ToString();
string conectIp = rdr["conectIp"].ToString();
string dataUsgqty = rdr["dataUsgqty"].ToString();
obj.Add("crtfcKey", crtfcKey);
obj.Add("logDt", logDt);
obj.Add("useSe", useSe);
obj.Add("sysUser", sysUser);
obj.Add("conectIp", conectIp);
obj.Add("dataUsgqty", dataUsgqty);
jarr.Add(obj);
}
if(rdr != null) rdr.Close();
for (int i = 0; i < arrList.Count; i++)
{
string url = "https://log.smart-factory.kr/apisvc/sendLogDataJSON.do";
string message = "logData=" + jarr[i].ToString();
string code = "";
string rslt = "";
Post(url, message, out code,out rslt);
if (code.Equals("AP1002"))
{
cmd.CommandText = "UPDATE T_SYS_LOG_SF SET SEND_YN= 'Y' WHERE IDX=" + arrList[i];
cmd.ExecuteNonQuery();
Console.Write("전송 성공!!!");
}
else
{
Console.WriteLine("전송 실패!!! ===> 실패코드:"+ code+",\t"+"실패사유:"+rslt);
break;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
//throw new Exception(ex.Message);
}
finally
{
if (conn != null)
{
conn.Close();
}
}
}
}
}