From b0c18d369abd06075c83759b0e19823c2a11d716 Mon Sep 17 00:00:00 2001 From: ulysseskao <ulysseskao@gmail.com> Date: Fri, 29 Apr 2016 18:45:41 +0800 Subject: [PATCH] update for new model --- CCSTrace/CCS/Object/AlarmData.cs | 307 +++++++++++++++++++++++++-------------------------- 1 files changed, 151 insertions(+), 156 deletions(-) diff --git a/CCSTrace/CCS/Object/AlarmData.cs b/CCSTrace/CCS/Object/AlarmData.cs index 4b83425..24baee3 100644 --- a/CCSTrace/CCS/Object/AlarmData.cs +++ b/CCSTrace/CCS/Object/AlarmData.cs @@ -1,217 +1,212 @@ using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.HtmlControls; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; using System.Collections; using System.Data.OracleClient; using System.Net; using System.Net.Sockets; -using System.IO; namespace CCSTrace.CCS.Object { public class AlarmData { - private Hashtable m_TotalData = new Hashtable(); - private RecordLog _PLog; - private OracleConnection _ConnectionTPC; - private OracleTransaction _Transaction; + private Hashtable _mTotalData = new Hashtable(); + private RecordLog _pLog; + private OracleConnection _connectionTpc; + private OracleTransaction _transaction; - public AlarmData(OracleConnection _Conn,OracleTransaction _Trx, RecordLog _Log) + public AlarmData(OracleConnection conn, OracleTransaction trx, RecordLog log) { - _ConnectionTPC = _Conn; - _Transaction = _Trx; - _PLog = _Log; + _connectionTpc = conn; + _transaction = trx; + _pLog = log; - String SqlStmt; + string sqlStmt; - SqlStmt = "SELECT DEPTID,IP1,IP2,IP_PATROL FROM CCS.ALARM_IP"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Transaction); - OracleDataReader reader = Command.ExecuteReader(); + sqlStmt = "SELECT DEPTID,IP1,IP2,IP_PATROL FROM CCS.ALARM_IP"; + OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); + OracleDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { - ArrayList Tmp = new ArrayList(); - Tmp.Add(Convert.ToInt32(reader["DEPTID"].ToString())); - Tmp.Add(reader["IP1"].ToString()); - Tmp.Add(reader["IP2"].ToString()); - Tmp.Add(reader["IP_Patrol"].ToString()); + ArrayList tmp = new ArrayList(); + tmp.Add(Convert.ToInt32(reader["DEPTID"].ToString())); + tmp.Add(reader["IP1"].ToString()); + tmp.Add(reader["IP2"].ToString()); + tmp.Add(reader["IP_Patrol"].ToString()); - m_TotalData.Add(Convert.ToInt32(reader["DeptID"].ToString()), Tmp); + _mTotalData.Add(Convert.ToInt32(reader["DeptID"].ToString()), tmp); } } catch (Exception e) { - _PLog.Error("Problems occur when fetch alarm data: (" + e.Message + ")"); + _pLog.Error("Problems occur when fetch alarm data: (" + e.Message + ")"); Console.WriteLine(e.StackTrace); } finally - { + { reader.Close(); - Command.Dispose(); + command.Dispose(); } } - private int getSSCCode(int m_SCCode, int m_Week) { - int ssccode = m_SCCode; + private int GetSscCode(int mScCode, int mWeek) + { + int ssccode = mScCode; -/* DateTime stime = DateTime.Now; + /* DateTime stime = DateTime.Now; - DateTime endtime = DateTime.Now; + DateTime endtime = DateTime.Now; - String SqlStmt = "select g.ssc_code as SSCCODE,t.begintime as BEGINTIME,t.endtime as ENDTIME,t.week as WEEK from ccs.scgroup g,ccs.scgrouptime t where g.groupid=t.groupid and g.sc_code=" - + m_SCCode + " and t.week=" + m_Week; - - try { - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC); - OracleDataReader reader = Command.ExecuteReader(); - - while (reader.Read()) - { - stime.set(Calendar.DAY_OF_WEEK, Rs.getInt("WEEK")); - endtime.set(Calendar.DAY_OF_WEEK, Rs.getInt("WEEK")); - stime.set(Calendar.HOUR_OF_DAY, Rs.getInt("BEGINTIME")); - endtime.set(Calendar.HOUR_OF_DAY, Rs.getInt("ENDTIME")); + String SqlStmt = "select g.ssc_code as SSCCODE,t.begintime as BEGINTIME,t.endtime as ENDTIME,t.week as WEEK from ccs.scgroup g,ccs.scgrouptime t where g.groupid=t.groupid and g.sc_code=" + + m_SCCode + " and t.week=" + m_Week; - if (stime.after(endtime)) - endtime.roll(Calendar.DAY_OF_WEEK, 1); - - if (stime.before(nowtime) && (endtime.after(nowtime))) - ssccode = Rs.getInt("SSCCODE"); - - } - reader.Close(); - Command.Dispose(); - } catch (Exception ex) { - _PLog.warn("無法取得SSCCode,以該案件所屬SCCode代替: (" + ex.Message + ")"); - }*/ + try { + OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC); + OracleDataReader reader = Command.ExecuteReader(); + + while (reader.Read()) + { + stime.set(Calendar.DAY_OF_WEEK, Rs.getInt("WEEK")); + endtime.set(Calendar.DAY_OF_WEEK, Rs.getInt("WEEK")); + stime.set(Calendar.HOUR_OF_DAY, Rs.getInt("BEGINTIME")); + endtime.set(Calendar.HOUR_OF_DAY, Rs.getInt("ENDTIME")); + + if (stime.after(endtime)) + endtime.roll(Calendar.DAY_OF_WEEK, 1); + + if (stime.before(nowtime) && (endtime.after(nowtime))) + ssccode = Rs.getInt("SSCCODE"); + } + reader.Close(); + Command.Dispose(); + } catch (Exception ex) { + _PLog.warn("無法取得SSCCode,以該案件所屬SCCode代替: (" + ex.Message + ")"); + }*/ return ssccode; } - private ArrayList getIPAddress(int DeptCode) { - return (ArrayList) m_TotalData[Convert.ToInt32(DeptCode)]; + private ArrayList GetIpAddress(int deptCode) + { + return (ArrayList)_mTotalData[Convert.ToInt32(deptCode)]; } - public bool alarm(String AcceptNum, int Dept) + public bool Alarm(string acceptNum, int dept) { - - _PLog.Info("開始Alarm..."); - System.Net.Sockets.Socket m_Client; - ArrayList IPAddressSet = this.getIPAddress(this.getSSCCode(Dept, Convert.ToInt32(DateTime.Now.DayOfWeek))); - String IP1; - String IP2; - String IP_Patrol; + _pLog.Info("開始Alarm..."); + Socket mClient; + ArrayList ipAddressSet = GetIpAddress(GetSscCode(dept, Convert.ToInt32(DateTime.Now.DayOfWeek))); + string ip1; + string ip2; + string ipPatrol; System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); - if (IPAddressSet != null) + if (ipAddressSet != null) { - _PLog.Info("已取得該部門所需通知的IP Address."); - IP1 = IPAddressSet[1].ToString(); - IP2 = IPAddressSet[2].ToString(); - IP_Patrol = IPAddressSet[3].ToString(); - } else { - _PLog.Warn("無法取得該部門所需通知的IP Address!"); + _pLog.Info("已取得該部門所需通知的IP Address."); + ip1 = ipAddressSet[1].ToString(); + ip2 = ipAddressSet[2].ToString(); + ipPatrol = ipAddressSet[3].ToString(); + } + else + { + _pLog.Warn("無法取得該部門所需通知的IP Address!"); return false; } - - try { - IPAddress serverIp = IPAddress.Parse(IP1); - int serverPort = Convert.ToInt32(CCS.LocalVariable.AlermPort); - IPEndPoint iep = new IPEndPoint(serverIp, serverPort); - - m_Client = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - m_Client.Connect(iep); - - byte[] byteMessage = encoding.GetBytes(AcceptNum); - - m_Client.Send(byteMessage); - m_Client.Shutdown(SocketShutdown.Both); - m_Client.Close(); - this.recordAlarmIP(AcceptNum, IP1); - _PLog.Info("已成功通知" + IP1 + " !"); - return true; - - } catch (Exception e) { - _PLog.Warn("無法通知" + IP1 + ": " + e.Message); - } - - try { - IPAddress serverIp = IPAddress.Parse(IP2); - int serverPort = Convert.ToInt32(CCS.LocalVariable.AlermPort); - IPEndPoint iep = new IPEndPoint(serverIp, serverPort); - - m_Client = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - m_Client.Connect(iep); - - byte[] byteMessage = encoding.GetBytes(AcceptNum); - - m_Client.Send(byteMessage); - m_Client.Shutdown(SocketShutdown.Both); - m_Client.Close(); - this.recordAlarmIP(AcceptNum, IP2); - _PLog.Info("已成功通知" + IP2 + " !"); - return true; - } - catch (Exception e) - { - _PLog.Warn("無法通知" + IP2 + ": " + e.Message); - } - - try { - IPAddress serverIp = IPAddress.Parse(IP_Patrol); - int serverPort = Convert.ToInt32(CCS.LocalVariable.AlermPort); - IPEndPoint iep = new IPEndPoint(serverIp, serverPort); - - m_Client = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - m_Client.Connect(iep); - - byte[] byteMessage = encoding.GetBytes(AcceptNum); - - m_Client.Send(byteMessage); - m_Client.Shutdown(SocketShutdown.Both); - m_Client.Close(); - this.recordAlarmIP(AcceptNum, IP_Patrol); - _PLog.Info("已成功通知" + IP_Patrol + " !"); - return true; - } - catch (Exception e) - { - _PLog.Warn("無法通知" + IP_Patrol + ": " + e.Message); - _PLog.Warn("三個IP均無法通知到!"); - return false; - } - } - - private void recordAlarmIP(String AccNum, String IP) { - String SqlStmt = "insert into eos.case_dispatch (acceptnum,alarmip) values('" + AccNum + "','" + IP + "')"; - - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Transaction); try { + IPAddress serverIp = IPAddress.Parse(ip1); + int serverPort = Convert.ToInt32(GlobalVariable.AlermPort); + IPEndPoint iep = new IPEndPoint(serverIp, serverPort); - if (Command.ExecuteNonQuery() <= 0) - _PLog.Warn("無法紀錄Alarm IP!"); + mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + mClient.Connect(iep); + + byte[] byteMessage = encoding.GetBytes(acceptNum); + + mClient.Send(byteMessage); + mClient.Shutdown(SocketShutdown.Both); + mClient.Close(); + RecordAlarmIp(acceptNum, ip1); + _pLog.Info("已成功通知" + ip1 + " !"); + return true; } catch (Exception e) { - _PLog.Error("recordAlarmIP Error." + e.Message); + _pLog.Warn("無法通知" + ip1 + ": " + e.Message); + } + + try + { + IPAddress serverIp = IPAddress.Parse(ip2); + int serverPort = Convert.ToInt32(GlobalVariable.AlermPort); + IPEndPoint iep = new IPEndPoint(serverIp, serverPort); + + mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + mClient.Connect(iep); + + byte[] byteMessage = encoding.GetBytes(acceptNum); + + mClient.Send(byteMessage); + mClient.Shutdown(SocketShutdown.Both); + mClient.Close(); + RecordAlarmIp(acceptNum, ip2); + _pLog.Info("已成功通知" + ip2 + " !"); + return true; + } + catch (Exception e) + { + _pLog.Warn("無法通知" + ip2 + ": " + e.Message); + } + + try + { + IPAddress serverIp = IPAddress.Parse(ipPatrol); + int serverPort = Convert.ToInt32(GlobalVariable.AlermPort); + IPEndPoint iep = new IPEndPoint(serverIp, serverPort); + + mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + mClient.Connect(iep); + + byte[] byteMessage = encoding.GetBytes(acceptNum); + + mClient.Send(byteMessage); + mClient.Shutdown(SocketShutdown.Both); + mClient.Close(); + RecordAlarmIp(acceptNum, ipPatrol); + _pLog.Info("已成功通知" + ipPatrol + " !"); + return true; + } + catch (Exception e) + { + _pLog.Warn("無法通知" + ipPatrol + ": " + e.Message); + _pLog.Warn("三個IP均無法通知到!"); + return false; + } + } + + private void RecordAlarmIp(string accNum, string ip) + { + string sqlStmt = "insert into eos.case_dispatch (acceptnum,alarmip) values('" + accNum + "','" + ip + "')"; + + OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); + + try + { + if (command.ExecuteNonQuery() <= 0) + _pLog.Warn("無法紀錄Alarm IP!"); + } + catch (Exception e) + { + _pLog.Error("recordAlarmIP Error." + e.Message); return; } finally { - Command.Dispose(); + command.Dispose(); } - } - } -} +} \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT