public bool CheckIn(_cgi_pms_data_type pms_data_type) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_cgi_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (pms_data_type.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return(_result); }
protected _cgi_pms_data_type GetPolicies4HouseKeep(string code, string ext, string txt) { _cgi_pms_data_type data = new _cgi_pms_data_type(); switch (code) { case "A": // 우편물 도착 알림 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 1; break; case "B": // 우편물 도착 알림 취소 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 0; break; case "C": // 모닝콜 설정 data.cmd = STRUCTS.CGI_PMS_SET_MORNING_CALL_REQ; data.extension = ext; if (txt.Length < 12) { break; } string hh = txt.Substring(8, 2); string mm = txt.Substring(10, 2); data.hour = string.IsNullOrEmpty(hh) == true ? 0 : int.Parse(hh); data.minutes = string.IsNullOrEmpty(mm) == true ? 0 : int.Parse(mm); break; case "D": // 모닝콜 취소 data.cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ; data.extension = ext; break; case "J": // DND 취소 break; default: data.cmd = 0; break; } return(data); }
// 체크인/아웃 발신 허용/금지 조회 public _cgi_pms_data_type GetPolicy(string _ext) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_GET_ALL_REQ , extension = _ext }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_cgi_pms_data_type>(_rbuffer); } catch (SocketException ex) { string err_msg = string.Format("{0}\r\n{1}", ex.ErrorCode, ex.Message); util.WriteLog(err_msg); int states = -1; if (ex.SocketErrorCode == SocketError.TimedOut) { states = STRUCTS.ERR_SOCKET_TIMEOUT; } else { states = 1; } pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_GET_OUTGOING_POLICY_RES, status = states, extension = _ext, allowedPrefix = string.Empty, forbiddenPrefix = string.Empty }; } _client.Close(); return(pms_data_type); }
// for House Keep public bool SetHouseKeep(string code, string ext, string txt) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_sdata = this.GetPolicies4HouseKeep(code, ext, txt); if (pms_sdata.cmd == 0) { result = true; } else { _cgi_pms_data_type pms_rdata = new _cgi_pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref remoteEp); pms_rdata = util.GetObject <_cgi_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } _client.Close(); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } } return(result); }
// for All Operations public bool SetSystem(string code, string ext, string period, string language) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_sdata = this.GetPolicies(code, ext, period, language); _cgi_pms_data_type pms_rdata = new _cgi_pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref remoteEp); pms_rdata = util.GetObject <_cgi_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } _client.Close(); System.Diagnostics.Debug.WriteLine("PMS Sent data : cmd:{0}, status:{1}, extension:{2}", pms_sdata.cmd, pms_sdata.status, pms_sdata.extension); System.Diagnostics.Debug.WriteLine("PMS Received data : cmd:{0}, status:{1}, extension:{2}", pms_rdata.cmd, pms_rdata.status, pms_rdata.extension); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } return(result); }
public bool RestoreSystem(_cgi_pms_data_type data) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type rdata = new _cgi_pms_data_type(); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; byte[] _sbuffer = util.GetBytes(data); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref remoteEp); rdata = util.GetObject <_cgi_pms_data_type>(_rbuffer); _client.Close(); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } if (rdata.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { if (rdata.status == 0) { result = true; } } return(result); }
// for All Operations public bool SetSystem(string code, string ext, string period, string language) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_sdata = this.GetPolicies(code, ext, period, language); _cgi_pms_data_type pms_rdata = new _cgi_pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_rdata = util.GetObject <_cgi_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } } catch (SocketException sockex) { util.WriteLog(sockex.Message); // pms_rdata = new _pms_data_type() { cmd = STRUCTS.PMS_CLEAR_FUNCTION_KEY_RES, status = 1 }; result = false; } _client.Close(); return(result); }
// 우편물 수령 요청 public bool SetParcel(string _ext, int _value) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ, extension = _ext, post_parcel = _value }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject<_cgi_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (pms_data_type.cmd == STRUCTS.CGI_PMS_SET_POST_PARCEL_RES) { switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return _result; }
// 체크인/아웃 발신 허용/금지 public bool CheckIn(chkinroom _chkinroom) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); string allowedstr = string.Empty; string forbiddenstr = string.Empty; _cgi_pms_data_type cgi_pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_REQ , extension = _chkinroom.roomnum , language = _chkinroom.language , hour = -1 , minutes = -1 , week = string.Empty }; if (_chkinroom.allowed[0] == "all") { allowedstr = _chkinroom.allowed[0]; } else { for (int i = 0; i < _chkinroom.allowed.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.allowed[i])) continue; if (string.IsNullOrEmpty(allowedstr)) { allowedstr += _chkinroom.allowed[i]; } else { allowedstr += string.Format(",{0}", _chkinroom.allowed[i]); } } } if (_chkinroom.forbidden[0] == "all") { forbiddenstr = _chkinroom.forbidden[0]; } else { for (int i = 0; i < _chkinroom.forbidden.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.forbidden[i])) continue; if (string.IsNullOrEmpty(forbiddenstr)) { forbiddenstr += _chkinroom.forbidden[i]; } else { forbiddenstr += string.Format(",{0}", _chkinroom.forbidden[i]); } } } cgi_pms_data_type.allowedPrefix = allowedstr; cgi_pms_data_type.forbiddenPrefix = forbiddenstr; //pms_data_type.forbiddenPrefix = ""; byte[] _sbuffer = util.GetBytes(cgi_pms_data_type); byte[] _rbuffer = null; //_cgi_res_hdr cgi_res_hdr; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); cgi_pms_data_type = util.GetObject<_cgi_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); cgi_pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (cgi_pms_data_type.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { switch (cgi_pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return _result; }
// 체크인/아웃 발신 허용/금지 조회 public _cgi_pms_data_type GetPolicy(string _ext) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type cgi_pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_GET_ALL_REQ , extension = _ext }; byte[] _sbuffer = util.GetBytes(cgi_pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); cgi_pms_data_type = util.GetObject<_cgi_pms_data_type>(_rbuffer); } catch (SocketException ex) { string err_msg = string.Format("{0}\r\n{1}", ex.ErrorCode, ex.Message); util.WriteLog(err_msg); int states = -1; if (ex.SocketErrorCode == SocketError.TimedOut) { states = STRUCTS.ERR_SOCKET_TIMEOUT; } else { states = 1; } cgi_pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_GET_OUTGOING_POLICY_RES, status = states, extension = _ext, allowedPrefix = string.Empty, forbiddenPrefix = string.Empty }; } _client.Close(); return cgi_pms_data_type; }
private void CheckRoonetsDB() { var watch = Stopwatch.StartNew(); DataTable dt = null; // Check IN/OUT using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = "select T1_ID, T1_SITE, T1_ROOM, T1_CODE, T1_PERIOD, T1_PROOM, T1_DATE, T1_READ, T1_READ2, T1_TXT2 from INF_CT01 where T1_READ=0 or T1_READ2=0 order by T1_DATE asc"; db.Open(); dt = db.GetDataTable(); } catch (SqlException e) { util.WriteLog(e.Message); } } List<TCT01> tempdata = new List<TCT01> (from DataRow row in dt.AsEnumerable() select new TCT01 { T_ID = row[0].ToString(), T_SITE = row[1].ToString(), T_ROOM = row[2].ToString(), T_CODE = row[3].ToString(), T_PERIOD = row[4].ToString(), T_PROOM = row[5].ToString(), T_DATE = (DateTime)row[6], T_READ = int.Parse(row[7].ToString()), T_READ2 = int.Parse(row[8].ToString()), T_TXT2 = row[9].ToString() }).ToList<TCT01>(); foreach (TCT01 item in tempdata) { string roomnumberext = string.IsNullOrEmpty(item.T_ROOM) == true ? string.Empty : int.Parse(item.T_ROOM).ToString(); if (string.IsNullOrEmpty(roomnumberext)) continue; _cgi_pms_data_type original_data = new _cgi_pms_data_type(); original_data = h2.GetPolicy(roomnumberext); bool result = false; int count = 0; if (item.T_CODE.Equals("3")) { if (item.T_ROOM.Equals(item.T_PROOM)) { // 일자변경 result = h2.SetSystem("5", roomnumberext, item.T_PERIOD, item.T_TXT2); } else { roomnumberext = string.IsNullOrEmpty(item.T_PROOM) == true ? string.Empty : int.Parse(item.T_PROOM).ToString(); result = h2.SetSystem("0", roomnumberext, item.T_PERIOD, item.T_TXT2); roomnumberext = string.IsNullOrEmpty(item.T_ROOM) == true ? string.Empty : int.Parse(item.T_ROOM).ToString(); if (item.T_PERIOD.Equals("0")) { result = h2.SetSystem("1", roomnumberext, item.T_PERIOD, item.T_TXT2); } else { result = h2.SetSystem("2", roomnumberext, item.T_PERIOD, item.T_TXT2); } } } else { result = h2.SetSystem(item.T_CODE, roomnumberext, item.T_PERIOD, item.T_TXT2); } if (item.T_CODE.Equals("O")) { using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = string.Format("update INF_CT01 set T1_READ=1, T1_READ2=1 where T1_READ2={0} and T1_SITE='{1}' and T1_ROOM='{2}' and T1_DATE=cast('{3}' as datetime)", item.T_READ2, item.T_SITE, item.T_ROOM, item.T_DATE.ToString("yyyy-MM-dd HH:mm:ss.fff")); db.Open(); db.BeginTran(); count = db.GetEffectedCount(); db.Commit(); item.T_READ = 1; item.T_READ2 = 1; } catch (SqlException e) { db.Rollback(); result = h2.RestoreSystem(original_data); } } } else { using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = string.Format("update INF_CT01 set T1_READ=1, T1_READ2=1 where T1_SITE='{0}' and T1_ROOM='{1}' and T1_DATE=cast('{2}' as datetime)", item.T_SITE, item.T_ROOM, item.T_DATE.ToString("yyyy-MM-dd HH:mm:ss.fff")); db.Open(); db.BeginTran(); count = db.GetEffectedCount(); db.Commit(); item.T_READ = 1; item.T_READ2 = 1; } catch (SqlException e) { db.Rollback(); result = h2.RestoreSystem(original_data); } } } } // Check House Keeping dt = null; using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = "select T3_ID, T3_SITE, T3_ROOM, T3_CODE, T3_READ, T3_TXT1, T3_DATE from INF_CT03 where T3_READ=0;"; db.Open(); dt = db.GetDataTable(); } catch (SqlException e) { util.WriteLog(e.Message); } } List<TCT03> tempdata2 = new List<TCT03>(from DataRow row in dt.AsEnumerable() select new TCT03 { T_ID = row[0].ToString(), T_SITE = row[1].ToString(), T_ROOM = row[2].ToString(), T_CODE = row[3].ToString(), T_READ = int.Parse(row[4].ToString()), T_TXT = row[5].ToString(), T_DATE = (DateTime)row[6], }).ToList<TCT03>(); //try //{ foreach (TCT03 item in tempdata2) { string roomnumberext = string.IsNullOrEmpty(item.T_ROOM) == true ? string.Empty : int.Parse(item.T_ROOM).ToString(); _cgi_pms_data_type original_data = new _cgi_pms_data_type(); original_data = h2.GetPolicy(roomnumberext); bool result = false; int count = 0; result = h2.SetHouseKeep(item.T_CODE, roomnumberext, item.T_TXT); using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = string.Format("update INF_CT03 set T3_READ=1 where T3_SITE='{0}' and T3_ROOM='{1}' and T3_DATE=cast('{2}' as datetime)", item.T_SITE, item.T_ROOM, item.T_DATE.ToString("yyyy-MM-dd HH:mm:ss.fff")); db.Open(); db.BeginTran(); count = db.GetEffectedCount(); db.Commit(); } catch (SqlException e) { db.Rollback(); result = h2.RestoreSystem(original_data); continue; } } } //} //catch (Exception e) //{ // util.WriteLog(e.Message); //} watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; Debug.WriteLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>> CheckRoonetsDB was done in " + elapsedMs + " mil."); }
private void CheckRoonetsDB() { var watch = Stopwatch.StartNew(); DataTable dt = null; // Check IN/OUT using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = "select T1_ID, T1_SITE, T1_ROOM, T1_CODE, T1_PERIOD, T1_PROOM, T1_DATE, T1_READ, T1_READ2, T1_TXT2 from INF_CT01 where T1_READ=0 or T1_READ2=0 order by T1_DATE asc"; db.Open(); dt = db.GetDataTable(); } catch (SqlException e) { util.WriteLog(e.Message); } } List <TCT01> tempdata = new List <TCT01> (from DataRow row in dt.AsEnumerable() select new TCT01 { T_ID = row[0].ToString(), T_SITE = row[1].ToString(), T_ROOM = row[2].ToString(), T_CODE = row[3].ToString(), T_PERIOD = row[4].ToString(), T_PROOM = row[5].ToString(), T_DATE = (DateTime)row[6], T_READ = int.Parse(row[7].ToString()), T_READ2 = int.Parse(row[8].ToString()), T_TXT2 = row[9].ToString() }).ToList <TCT01>(); foreach (TCT01 item in tempdata) { string roomnumberext = string.IsNullOrEmpty(item.T_ROOM) == true ? string.Empty : int.Parse(item.T_ROOM).ToString(); if (string.IsNullOrEmpty(roomnumberext)) { continue; } _cgi_pms_data_type original_data = new _cgi_pms_data_type(); original_data = h2.GetPolicy(roomnumberext); bool result = false; int count = 0; if (item.T_CODE.Equals("3")) { if (item.T_ROOM.Equals(item.T_PROOM)) { // 일자변경 result = h2.SetSystem("5", roomnumberext, item.T_PERIOD, item.T_TXT2); } else { roomnumberext = string.IsNullOrEmpty(item.T_PROOM) == true ? string.Empty : int.Parse(item.T_PROOM).ToString(); result = h2.SetSystem("0", roomnumberext, item.T_PERIOD, item.T_TXT2); roomnumberext = string.IsNullOrEmpty(item.T_ROOM) == true ? string.Empty : int.Parse(item.T_ROOM).ToString(); if (item.T_PERIOD.Equals("0")) { result = h2.SetSystem("1", roomnumberext, item.T_PERIOD, item.T_TXT2); } else { result = h2.SetSystem("2", roomnumberext, item.T_PERIOD, item.T_TXT2); } } } else { result = h2.SetSystem(item.T_CODE, roomnumberext, item.T_PERIOD, item.T_TXT2); } if (item.T_CODE.Equals("O")) { using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = string.Format("update INF_CT01 set T1_READ=1, T1_READ2=1 where T1_READ2={0} and T1_SITE='{1}' and T1_ROOM='{2}' and T1_DATE=cast('{3}' as datetime)", item.T_READ2, item.T_SITE, item.T_ROOM, item.T_DATE.ToString("yyyy-MM-dd HH:mm:ss.fff")); db.Open(); db.BeginTran(); count = db.GetEffectedCount(); db.Commit(); item.T_READ = 1; item.T_READ2 = 1; } catch (SqlException e) { db.Rollback(); result = h2.RestoreSystem(original_data); } } } else { using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = string.Format("update INF_CT01 set T1_READ=1, T1_READ2=1 where T1_SITE='{0}' and T1_ROOM='{1}' and T1_DATE=cast('{2}' as datetime)", item.T_SITE, item.T_ROOM, item.T_DATE.ToString("yyyy-MM-dd HH:mm:ss.fff")); db.Open(); db.BeginTran(); count = db.GetEffectedCount(); db.Commit(); item.T_READ = 1; item.T_READ2 = 1; } catch (SqlException e) { db.Rollback(); result = h2.RestoreSystem(original_data); } } } } // Check House Keeping dt = null; using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = "select T3_ID, T3_SITE, T3_ROOM, T3_CODE, T3_READ, T3_TXT1, T3_DATE from INF_CT03 where T3_READ=0;"; db.Open(); dt = db.GetDataTable(); } catch (SqlException e) { util.WriteLog(e.Message); } } List <TCT03> tempdata2 = new List <TCT03>(from DataRow row in dt.AsEnumerable() select new TCT03 { T_ID = row[0].ToString(), T_SITE = row[1].ToString(), T_ROOM = row[2].ToString(), T_CODE = row[3].ToString(), T_READ = int.Parse(row[4].ToString()), T_TXT = row[5].ToString(), T_DATE = (DateTime)row[6], }).ToList <TCT03>(); //try //{ foreach (TCT03 item in tempdata2) { string roomnumberext = string.IsNullOrEmpty(item.T_ROOM) == true ? string.Empty : int.Parse(item.T_ROOM).ToString(); _cgi_pms_data_type original_data = new _cgi_pms_data_type(); original_data = h2.GetPolicy(roomnumberext); bool result = false; int count = 0; result = h2.SetHouseKeep(item.T_CODE, roomnumberext, item.T_TXT); using (MSDBHelper db = new MSDBHelper(DBServer)) { try { db.Sql = string.Format("update INF_CT03 set T3_READ=1 where T3_SITE='{0}' and T3_ROOM='{1}' and T3_DATE=cast('{2}' as datetime)", item.T_SITE, item.T_ROOM, item.T_DATE.ToString("yyyy-MM-dd HH:mm:ss.fff")); db.Open(); db.BeginTran(); count = db.GetEffectedCount(); db.Commit(); } catch (SqlException e) { db.Rollback(); result = h2.RestoreSystem(original_data); continue; } } } //} //catch (Exception e) //{ // util.WriteLog(e.Message); //} watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; Debug.WriteLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>> CheckRoonetsDB was done in " + elapsedMs + " mil."); }
protected _cgi_pms_data_type GetPolicies(string code, string ext, string period, string language) { _cgi_pms_data_type data = new _cgi_pms_data_type(); DateTime tmpdate; switch (code) { case "0": // 퇴실 data.cmd = STRUCTS.CGI_PMS_CLEAR_FUNCTION_KEY_REQ; data.extension = ext; break; case "1": // 대실 tmpdate = DateTime.Now.AddHours(4); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; data.extension = ext; data.checkout_month = tmpdate.Month; data.checkout_day = tmpdate.Day; data.checkout_hour = tmpdate.Hour; data.checkout_minitues = tmpdate.Minute; data.checkout_before_min = 30; data.checkout_try_interval = 10; data.checkout_repeat_times = 2; data.checkout_ring_duration = 30; data.language = SetLanguage(language); data.allowedPrefix = "all"; data.forbiddenPrefix = ""; break; case "2": // 숙박 tmpdate = DateTime.Now.AddDays(string.IsNullOrEmpty(period) == true ? 0 : int.Parse(period)); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; data.extension = ext; data.checkout_month = tmpdate.Month; data.checkout_day = tmpdate.Day; data.checkout_hour = 12; data.checkout_minitues = 0; data.checkout_before_min = 30; data.checkout_try_interval = 10; data.checkout_repeat_times = 2; data.checkout_ring_duration = 30; data.language = SetLanguage(language); data.allowedPrefix = "all"; data.forbiddenPrefix = ""; break; case "5": // 투숙일 변경 tmpdate = DateTime.Now.AddDays(string.IsNullOrEmpty(period) == true ? 0 : int.Parse(period)); data.cmd = STRUCTS.CGI_PMS_SET_CHECKOUT_TIME_REQ; data.extension = ext; data.checkout_month = tmpdate.Month; data.checkout_day = tmpdate.Day; data.checkout_hour = 12; data.checkout_minitues = 0; data.checkout_before_min = 30; data.checkout_try_interval = 10; data.checkout_repeat_times = 2; data.checkout_ring_duration = 30; data.language = SetLanguage(language); break; case "O": // 정보 변경 // 언어설정 data.cmd = STRUCTS.CGI_PMS_SET_LANGUAGE_REQ; data.extension = ext; data.language = SetLanguage(language); break; default: break; } return(data); }
// for House Keep public bool SetHouseKeep(string code, string ext, string txt) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_sdata = this.GetPolicies4HouseKeep(code, ext, txt); if (pms_sdata.cmd == 0) { result = true; } else { _cgi_pms_data_type pms_rdata = new _cgi_pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref remoteEp); pms_rdata = util.GetObject<_cgi_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } _client.Close(); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } } return result; }
// for All Operations public bool SetSystem(string code, string ext, string period, string language) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_sdata = this.GetPolicies(code, ext, period, language); _cgi_pms_data_type pms_rdata = new _cgi_pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_rdata = util.GetObject<_cgi_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } } catch (SocketException sockex) { util.WriteLog(sockex.Message); // pms_rdata = new _pms_data_type() { cmd = STRUCTS.PMS_CLEAR_FUNCTION_KEY_RES, status = 1 }; result = false; } _client.Close(); return result; }
public bool RestoreSystem(_cgi_pms_data_type data) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type rdata = new _cgi_pms_data_type(); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; byte[] _sbuffer = util.GetBytes(data); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref remoteEp); rdata = util.GetObject<_cgi_pms_data_type>(_rbuffer); _client.Close(); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } if (rdata.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { if (rdata.status == 0) { result = true; } } return result; }
protected _cgi_pms_data_type GetPolicies4HouseKeep(string code, string ext, string txt) { _cgi_pms_data_type data = new _cgi_pms_data_type(); switch (code) { case "A": // 우편물 도착 알림 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 1; break; case "B": // 우편물 도착 알림 취소 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 0; break; case "C": // 모닝콜 설정 data.cmd = STRUCTS.CGI_PMS_SET_MORNING_CALL_REQ; data.extension = ext; if (txt.Length < 12) break; string hh = txt.Substring(8, 2); string mm = txt.Substring(10, 2); data.hour = string.IsNullOrEmpty(hh) == true ? 0 : int.Parse(hh); data.minutes = string.IsNullOrEmpty(mm) == true ? 0 : int.Parse(mm); break; case "D": // 모닝콜 취소 data.cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ; data.extension = ext; break; case "J": // DND 취소 break; default: data.cmd = 0; break; } return data; }
// 체크인/아웃 발신 허용/금지 public bool CheckIn(chkinroom _chkinroom) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); string allowedstr = string.Empty; string forbiddenstr = string.Empty; _cgi_pms_data_type cgi_pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_REQ , extension = _chkinroom.roomnum , language = _chkinroom.language , hour = -1 , minutes = -1 , week = string.Empty }; if (_chkinroom.allowed[0] == "all") { allowedstr = _chkinroom.allowed[0]; } else { for (int i = 0; i < _chkinroom.allowed.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.allowed[i])) { continue; } if (string.IsNullOrEmpty(allowedstr)) { allowedstr += _chkinroom.allowed[i]; } else { allowedstr += string.Format(",{0}", _chkinroom.allowed[i]); } } } if (_chkinroom.forbidden[0] == "all") { forbiddenstr = _chkinroom.forbidden[0]; } else { for (int i = 0; i < _chkinroom.forbidden.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.forbidden[i])) { continue; } if (string.IsNullOrEmpty(forbiddenstr)) { forbiddenstr += _chkinroom.forbidden[i]; } else { forbiddenstr += string.Format(",{0}", _chkinroom.forbidden[i]); } } } cgi_pms_data_type.allowedPrefix = allowedstr; cgi_pms_data_type.forbiddenPrefix = forbiddenstr; //pms_data_type.forbiddenPrefix = ""; byte[] _sbuffer = util.GetBytes(cgi_pms_data_type); byte[] _rbuffer = null; //_cgi_res_hdr cgi_res_hdr; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); cgi_pms_data_type = util.GetObject <_cgi_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); cgi_pms_data_type = new _cgi_pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (cgi_pms_data_type.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { switch (cgi_pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return(_result); }
protected _cgi_pms_data_type GetPolicies(string code, string ext, string period, string language) { _cgi_pms_data_type data = new _cgi_pms_data_type(); DateTime tmpdate; switch (code) { case "0": // 퇴실 data.cmd = STRUCTS.CGI_PMS_CLEAR_FUNCTION_KEY_REQ; data.extension = ext; break; case "1": // 대실 tmpdate = DateTime.Now.AddHours(4); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; data.extension = ext; data.checkout_month = tmpdate.Month; data.checkout_day = tmpdate.Day; data.checkout_hour = tmpdate.Hour; data.checkout_minitues = tmpdate.Minute; data.checkout_before_min = 30; data.checkout_try_interval = 10; data.checkout_repeat_times = 2; data.checkout_ring_duration = 30; data.language = SetLanguage(language); data.allowedPrefix = "all"; data.forbiddenPrefix = ""; break; case "2": // 숙박 tmpdate = DateTime.Now.AddDays(string.IsNullOrEmpty(period) == true ? 0 : int.Parse(period)); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; data.extension = ext; data.checkout_month = tmpdate.Month; data.checkout_day = tmpdate.Day; data.checkout_hour = 12; data.checkout_minitues = 0; data.checkout_before_min = 30; data.checkout_try_interval = 10; data.checkout_repeat_times = 2; data.checkout_ring_duration = 30; data.language = SetLanguage(language); data.allowedPrefix = "all"; data.forbiddenPrefix = ""; break; case "5": // 투숙일 변경 tmpdate = DateTime.Now.AddDays(string.IsNullOrEmpty(period) == true ? 0 : int.Parse(period)); data.cmd = STRUCTS.CGI_PMS_SET_CHECKOUT_TIME_REQ; data.extension = ext; data.checkout_month = tmpdate.Month; data.checkout_day = tmpdate.Day; data.checkout_hour = 12; data.checkout_minitues = 0; data.checkout_before_min = 30; data.checkout_try_interval = 10; data.checkout_repeat_times = 2; data.checkout_ring_duration = 30; data.language = SetLanguage(language); break; case "O": // 정보 변경 // 언어설정 data.cmd = STRUCTS.CGI_PMS_SET_LANGUAGE_REQ; data.extension = ext; data.language = SetLanguage(language); break; default: break; } return data; }
// for All Operations public bool SetSystem(string code, string ext, string period, string language) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _cgi_pms_data_type pms_sdata = this.GetPolicies(code, ext, period, language); _cgi_pms_data_type pms_rdata = new _cgi_pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref remoteEp); pms_rdata = util.GetObject<_cgi_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } _client.Close(); System.Diagnostics.Debug.WriteLine("PMS Sent data : cmd:{0}, status:{1}, extension:{2}", pms_sdata.cmd, pms_sdata.status, pms_sdata.extension); System.Diagnostics.Debug.WriteLine("PMS Received data : cmd:{0}, status:{1}, extension:{2}", pms_rdata.cmd, pms_rdata.status, pms_rdata.extension); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } return result; }