using System; using System.Data.OracleClient; namespace CCSTrace.CCS.Object { public class EventQuery { //private CCS.Function.TransferDate convert = new CCS.Function.TransferDate(); public string CcsId { get; set; } public string Meter { get; set; } public int CaseStatus { get; set; } public string ChangeTime { get; set; } public string HandlingSummary { get; set; } public string AssumedTime { get; set; } public string AssumedTimeNth { get; set; } public int DelayTimes { get; set; } = 0; public string Reason { get; set; } public string EventLocation { get; set; } = ""; public bool Insert(RecordLog pLog, OracleConnection conn, OracleTransaction transaction) { string sqlStmt; if (!Check()) { return false; } if (Meter == null) { sqlStmt = $"INSERT INTO CCS.EVENTQUERY (CCSID,CASESTATUS,CHANGETIME,ASSUMEDTIME,ASSUMEDTIME_NTH,DELAYTIMES,REASON,INPUTTIME) values(" + "'" + CcsId + "'," + CaseStatus + ",to_date('" + ChangeTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTimeNth + "','yyyy/mm/dd hh24:mi:ss')," + DelayTimes + ",'" + Reason + "',SYSDATE)"; } else { sqlStmt = $"INSERT INTO CCS.EVENTQUERY (CCSID,METER,CASESTATUS,CHANGETIME,ASSUMEDTIME,ASSUMEDTIME_NTH,DELAYTIMES,REASON,INPUTTIME) values(" + "'" + CcsId + "','" + Meter + "'," + CaseStatus + ",to_date('" + ChangeTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTimeNth + "','yyyy/mm/dd hh24:mi:ss')," + DelayTimes + ",'" + Reason + "',SYSDATE)"; } var command = new OracleCommand(sqlStmt, conn, transaction); try { if (command.ExecuteNonQuery() > 0) return true; else return false; } catch (Exception e) { pLog.Error(e.Message); Console.WriteLine(e.StackTrace); return false; } finally { command.Dispose(); } } public bool Insert(SEventLog pLog, OracleConnection conn, OracleTransaction transaction) { string sqlStmt; if (!Check()) { return false; } if (Meter == null) { sqlStmt = "INSERT INTO CCS.EVENTQUERY (CCSID,CASESTATUS,CHANGETIME,ASSUMEDTIME,ASSUMEDTIME_NTH,DELAYTIMES,REASON,INPUTTIME) values(" + "'" + CcsId + "'," + CaseStatus + ",to_date('" + ChangeTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTimeNth + "','yyyy/mm/dd hh24:mi:ss')," + DelayTimes + ",'" + Reason + "',SYSDATE)"; } else { sqlStmt = "INSERT INTO CCS.EVENTQUERY (CCSID,METER,CASESTATUS,CHANGETIME,ASSUMEDTIME,ASSUMEDTIME_NTH,DELAYTIMES,REASON,INPUTTIME) values(" + "'" + CcsId + "','" + Meter + "'," + CaseStatus + ",to_date('" + ChangeTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTimeNth + "','yyyy/mm/dd hh24:mi:ss')," + DelayTimes + ",'" + Reason + "',SYSDATE)"; } var command = new OracleCommand(sqlStmt, conn, transaction); try { if (command.ExecuteNonQuery() > 0) return true; else return false; } catch (Exception e) { pLog.Error(e.Message); Console.WriteLine(e.StackTrace); if (GlobalVariable.ShowError) pLog.Error(e.StackTrace); throw e; } finally { command.Dispose(); } } public bool Update(RecordLog pLog, OracleConnection conn, OracleTransaction transaction) { if (!Check()) { return false; } var sqlStmt = "UPDATE CCS.EVENTQUERY SET CASESTATUS=" + CaseStatus + ",CHANGETIME=to_date('" + ChangeTime + "','yyyy/mm/dd hh24:mi:ss'),ASSUMEDTIME=to_date('" + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),ASSUMEDTIME_NTH=to_date('" + AssumedTimeNth + "','yyyy/mm/dd hh24:mi:ss'),DELAYTIMES=" + DelayTimes + ",REASON='" + Reason + "',EVENTLOCATION ='" + EventLocation + "' WHERE CCSID='" + CcsId + "'"; var command = new OracleCommand(sqlStmt, conn, transaction); try { if (command.ExecuteNonQuery() <= 0) { pLog.Error("更新CCS.EVENTQUERY資料失敗."); return false; } } catch (Exception e) { pLog.Error(e.Message); Console.WriteLine(e.StackTrace); return false; } finally { command.Dispose(); } return true; } public bool UpdateCaseStatus(SEventLog pLog, OracleConnection conn, OracleTransaction transaction) { var sqlStmt = "UPDATE CCS.EVENTQUERY SET CASESTATUS = " + CaseStatus + " WHERE CCSID = '" + CcsId + "'"; var command = new OracleCommand(sqlStmt, conn, transaction); try { if (command.ExecuteNonQuery() <= 0) { pLog.Error("更新CCS.EVENTQUERY的CASESTATUS失敗."); return false; } } catch (Exception e) { pLog.Error(e.Message); Console.WriteLine(e.StackTrace); if (GlobalVariable.ShowError) pLog.Error(e.StackTrace); throw e; } finally { command.Dispose(); } return true; } // Not Null Check private bool Check() { if (CcsId == null) { return false; } if (CaseStatus == 0) { return false; } Reason = Reason ?? ""; return true; } } }