Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        // 체크인/아웃 발신 허용/금지 조회
        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);
        }
Exemplo n.º 4
0
        // 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);
        }
Exemplo n.º 5
0
        // 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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        // 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);
        }
Exemplo n.º 8
0
        // 우편물 수령 요청
        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;
        }
Exemplo n.º 9
0
        // 체크인/아웃 발신 허용/금지
        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;
        }
Exemplo n.º 10
0
        // 체크인/아웃 발신 허용/금지 조회
        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;
        }
Exemplo n.º 11
0
        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.");
        }
Exemplo n.º 12
0
        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.");
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        // 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;
        }
Exemplo n.º 15
0
        // 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;
        }
Exemplo n.º 16
0
        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;
        }
Exemplo n.º 17
0
        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;
        }
Exemplo n.º 18
0
        // 체크인/아웃 발신 허용/금지
        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);
        }
Exemplo n.º 19
0
        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;
        }
Exemplo n.º 20
0
        // 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;
        }