Esempio n. 1
0
        protected bool GetResult(_pms_data_type sdata, _pms_data_type rdata)
        {
            bool result = false;

            if (sdata.cmd == STRUCTS.CGI_PMS_CLEAR_FUNCTION_KEY_RES)
            {
                switch (sdata.status)
                {
                case 0:
                    result = true;
                    break;

                case 1:
                    result = false;
                    break;

                default:
                    result = false;
                    break;
                }
            }
            else
            {
                result = false;
            }

            return(result);
        }
Esempio n. 2
0
        private void SrvReceiver()
        {
            int _count = 0;

            while (_srvLoop)
            {
                byte[] _buffer = new byte[1024];
                _count = 0;

                try
                {
                    _count = _sockSrv.ReceiveFrom(_buffer, SocketFlags.None, ref _remoteep);
                }
                catch (SocketException se)
                {
                    string _msg = string.Format("PMSServer socket receive error: {0}", se.ErrorCode);
                    util.WriteLog(_msg);
                }

                if (_count == 0)
                {
                    continue;
                }

                byte[] _databuffer = new byte[_count];
                Buffer.BlockCopy(_buffer, 0, _databuffer, 0, _count);

                _pms_data_type _pmsdata = util.GetObject <_pms_data_type>(_databuffer);

                if (ReqPMSSetEvent != null)
                {
                    ReqPMSSetEvent(this, _pmsdata);
                }
            }
        }
Esempio n. 3
0
        // 모닝콜 삭제
        public bool ClearMorningCall(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);

            _pms_data_type pms_data_type = new _pms_data_type()
            {
                cmd         = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ
                , extension = _ext
            };

            byte[] _sbuffer = util.GetBytes(pms_data_type);
            byte[] _rbuffer = null;
            //_cgi_res_hdr cgi_res_hdr;

            try
            {
                _client.Send(_sbuffer, _sbuffer.Length);
                _rbuffer = _client.Receive(ref _remoteEP);

                pms_data_type        = util.GetObject <_pms_data_type>(_rbuffer);
                pms_data_type.status = 0;
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                pms_data_type = new _pms_data_type()
                {
                    cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1
                };
            }
            _client.Close();

            bool _result = false;

            switch (pms_data_type.status)
            {
            case 0:
                _result = true;
                break;

            case 1:
                _result = false;
                break;

            default:
                _result = false;
                break;
            }

            return(_result);
        }
Esempio n. 4
0
        public bool CheckIn(_pms_data_type pms_data_type)
        {
            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);

            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 <_pms_data_type>(_rbuffer);
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                pms_data_type = new _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);
        }
Esempio n. 5
0
        private void SendReceiveMessage()
        {
            while (true)
            {
                byte[] buffer = null;

                try
                {
                    buffer = client.Receive(ref remoteEp);
                }
                catch (SocketException se)
                {
                    string message = string.Format("HotelHelper2 socket receive error: {0}", se.ErrorCode);
                    util.WriteLog(message);
                }

                if (buffer == null)
                {
                    continue;
                }

                _pms_reg_t msg = util.GetObject <_pms_reg_t>(buffer);

                switch (msg.cmd)
                {
                case STRUCTS.PMS_REGISTER_RES:
                    if (msg.status == STRUCTS.PMS_STATUS_SUCCESS)
                    {
                        this.expires = msg.expires * 1000;
                        this.RegTimerInit();
                        this.IsRegistered = true;
                    }
                    break;

                case STRUCTS.PMS_UNREGISTER_RES:
                    if (msg.status == STRUCTS.PMS_STATUS_SUCCESS)
                    {
                        RegTimerDispose();
                        this.expires      = msg.expires;
                        this.IsRegistered = false;
                    }
                    break;

                default:
                    _pms_data_type pmsmsg = util.GetObject <_pms_data_type>(buffer);

                    if (PassDevice2PmsEvent != null)
                    {
                        PassDevice2PmsEvent(this, pmsmsg);
                    }
                    break;
                }
            }
        }
Esempio n. 6
0
        void pmsSrv_ReqPMSSetEvent(PMSServer sender, _pms_data_type pmsdata)
        {
            //var user = OnlineUsers.Keys.Where(o => o.Context.ClientAddress == context.ClientAddress).Single();
            var u = OnlineUsers.Keys.FirstOrDefault();
            ResponseFromTossServer r = new ResponseFromTossServer()
            {
                Type = CommandType.Message, Data = pmsdata
            };

            if (u != null)
            {
                u.Context.Send(JsonConvert.SerializeObject(r));
            }
        }
Esempio n. 7
0
        public void Send(_pms_data_type rdata)
        {
            _pms_data_type msg = GetMsg(rdata);

            byte[] buffer = util.GetBytes(msg);

            try
            {
                client.Send(buffer, buffer.Length);
            }
            catch (SocketException ex)
            {
                throw ex;
            }
        }
Esempio n. 8
0
        protected _pms_data_type GetPolicies4HouseKeep(string code, string ext, string mtime)
        {
            _pms_data_type data = new _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;
                string hh      = mtime.Substring(0, 2);
                string mm      = mtime.Substring(2, 2);
                int    hour    = string.IsNullOrEmpty(hh) == true ? 0 : int.Parse(hh);
                int    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);
        }
Esempio n. 9
0
        public bool ClearMorningCall2(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);

            _pms_data_type pms_data_type = new _pms_data_type()
            {
                cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ
                ,
                extension = _ext
                ,
                hour = 255
            };

            byte[] _sbuffer = util.GetBytes(pms_data_type);

            _client.Send(_sbuffer, _sbuffer.Length);
            byte[] _rbuffer = _client.Receive(ref _remoteEP);
            _client.Close();

            pms_data_type = util.GetObject <_pms_data_type>(_rbuffer);

            bool _result = false;

            switch (pms_data_type.status)
            {
            case 0:
                _result = false;
                break;

            case 1:
                _result = true;
                break;

            default:
                _result = false;
                break;
            }

            return(_result);
        }
Esempio n. 10
0
        // for House Keep
        public bool SetHouseKeep(string code, string ext, string mtime)
        {
            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);

            _pms_data_type pms_sdata = this.GetPolicies4HouseKeep(code, ext, mtime);

            if (pms_sdata.cmd == 0)
            {
                return(false);
            }

            _pms_data_type pms_rdata = new _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 <_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);
        }
Esempio n. 11
0
        // 모닝콜 조회
        public _pms_data_type GetMorningCall(string _ext)
        {
            IPEndPoint     _serverEP;
            IPEndPoint     _remoteEP;
            UdpClient      _client;
            _pms_data_type pms_data_type;

            try
            {
                _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT);
                _remoteEP = new IPEndPoint(IPAddress.Any, 0);

                _client = new UdpClient();
                _client.Client.ReceiveTimeout = UDP_WAITING_MISEC;
                _client.Connect(_serverEP);

                pms_data_type = new _pms_data_type()
                {
                    cmd = STRUCTS.CGI_PMS_GET_MORNING_CALL_REQ
                    ,
                    extension = _ext
                };

                byte[] _sbuffer = util.GetBytes(pms_data_type);
                byte[] _rbuffer = null;


                _client.Send(_sbuffer, _sbuffer.Length);
                _rbuffer = _client.Receive(ref _remoteEP);

                pms_data_type = util.GetObject <_pms_data_type>(_rbuffer);

                _client.Close();
            }
            catch (SocketException ex)
            {
                pms_data_type = new _pms_data_type()
                {
                    cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty
                };
            }

            return(pms_data_type);
        }
Esempio n. 12
0
        // 모닝콜 조회
        public _pms_data_type GetMorningCall(string _ext)
        {
            IPEndPoint _serverEP;
            IPEndPoint _remoteEP;
            UdpClient _client;
            _pms_data_type pms_data_type;

            try
            {
                _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT);
                _remoteEP = new IPEndPoint(IPAddress.Any, 0);

                _client = new UdpClient();
                _client.Client.ReceiveTimeout = UDP_WAITING_MISEC;
                _client.Connect(_serverEP);

                pms_data_type = new _pms_data_type()
                {
                    cmd = STRUCTS.CGI_PMS_GET_MORNING_CALL_REQ
                    ,
                    extension = _ext
                };

                byte[] _sbuffer = util.GetBytes(pms_data_type);
                byte[] _rbuffer = null;


                _client.Send(_sbuffer, _sbuffer.Length);
                _rbuffer = _client.Receive(ref _remoteEP);

                pms_data_type = util.GetObject<_pms_data_type>(_rbuffer);

                _client.Close();
            }
            catch (SocketException ex)
            {
                pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty };
            }

            return pms_data_type;
        }
Esempio n. 13
0
        public bool RestoreSystem(_pms_data_type data)
        {
            bool           result = false;
            _pms_data_type rdata  = new _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);

            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 <_pms_data_type>(_rbuffer);
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                result = false;
            }
            _client.Close();

            if (rdata.cmd == STRUCTS.CGI_PMS_SET_ALL_RES)
            {
                if (rdata.status == 0)
                {
                    result = true;
                }
            }

            return(result);
        }
Esempio n. 14
0
        public _pms_data_type GetMsg(_pms_data_type rdata)
        {
            _pms_data_type msg = new _pms_data_type();

            switch (rdata.cmd)
            {
            case STRUCTS.PMS_SET_MORNING_CALL_REQ:
                msg.cmd       = STRUCTS.PMS_SET_MORNING_CALL_RES;
                msg.status    = rdata.status;
                msg.pList     = rdata.pList;
                msg.extension = rdata.extension;
                break;

            case STRUCTS.PMS_SET_LANGUAGE_REQ:
                msg.cmd       = STRUCTS.PMS_SET_LANGUAGE_RES;
                msg.status    = rdata.status;
                msg.pList     = rdata.pList;
                msg.extension = rdata.extension;
                break;

            case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ:
                msg.cmd       = STRUCTS.PMS_REPORT_FUNCTION_KEY_RES;
                msg.status    = rdata.status;
                msg.pList     = rdata.pList;
                msg.extension = rdata.extension;
                break;

            case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ:
                msg.cmd       = STRUCTS.PMS_REPORT_MAKEUP_STATUS_RES;
                msg.status    = rdata.status;
                msg.pList     = rdata.pList;
                msg.extension = rdata.extension;
                break;
            }
            return(msg);
        }
Esempio n. 15
0
        // for House Keep
        public bool SetHouseKeep(string code, string ext, string mtime)
        {
            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);

            _pms_data_type pms_sdata = this.GetPolicies4HouseKeep(code, ext, mtime);
            if (pms_sdata.cmd == 0) return false;

            _pms_data_type pms_rdata = new _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<_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;
        }
Esempio n. 16
0
        public bool RestoreSystem(_pms_data_type data)
        {
            bool result = false;
            _pms_data_type rdata = new _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);

            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<_pms_data_type>(_rbuffer);
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                result = false;
            }
            _client.Close();

            if (rdata.cmd == STRUCTS.CGI_PMS_SET_ALL_RES)
            {
                if (rdata.status == 0)
                {
                    result = true;
                }
            }

            return result;
        }
Esempio n. 17
0
        public bool ClearMorningCall2(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);

            _pms_data_type pms_data_type = new _pms_data_type()
            {
                cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ
                ,
                extension = _ext
                ,
                hour = 255
            };

            byte[] _sbuffer = util.GetBytes(pms_data_type);

            _client.Send(_sbuffer, _sbuffer.Length);
            byte[] _rbuffer = _client.Receive(ref _remoteEP);
            _client.Close();

            pms_data_type = util.GetObject<_pms_data_type>(_rbuffer);

            bool _result = false;

            switch (pms_data_type.status)
            {
                case 0:
                    _result = false;
                    break;
                case 1:
                    _result = true;
                    break;
                default:
                    _result = false;
                    break;
            }

            return _result;
        }
Esempio n. 18
0
        // 우편물 수령 요청
        public bool SetParcel(string _ext, int _value)
        {
            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);

            _pms_data_type pms_data_type = new _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<_pms_data_type>(_rbuffer);
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                pms_data_type = new _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;
        }
Esempio n. 19
0
 public void SendReplay(_pms_data_type pmsdata)
 {
     h2.Send(pmsdata);
 }
Esempio n. 20
0
        // 모닝콜 삭제
        public bool ClearMorningCall(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);

            _pms_data_type pms_data_type = new _pms_data_type()
            {
                cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ
                , extension = _ext
            };
            byte[] _sbuffer = util.GetBytes(pms_data_type);
            byte[] _rbuffer = null;
            //_cgi_res_hdr cgi_res_hdr;

            try
            {
                _client.Send(_sbuffer, _sbuffer.Length);
                _rbuffer = _client.Receive(ref _remoteEP);

                pms_data_type = util.GetObject<_pms_data_type>(_rbuffer);
                pms_data_type.status = 0;
            }
            catch(SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1 };
            }
            _client.Close();

            bool _result = false;

            switch (pms_data_type.status)
            {
                case 0:
                    _result = true;
                    break;
                case 1:
                    _result = false;
                    break;
                default:
                    _result = false;
                    break;
            }

            return _result;
        }
Esempio n. 21
0
        // 모닝콜 설정
        public bool SetMorningCall(string _ext, string _week, int _hour, int _minutes, int repeat_week)
        {
            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);

            _pms_data_type pms_data_type = new _pms_data_type()
            {
                cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ
                ,
                extension = _ext
                ,
                week = _week
                ,
                hour = _hour
                ,
                minutes = _minutes
                ,
                try_interval = 3
                ,
                repeat_times = 5
                ,
                repeat_week = repeat_week
                ,
                ring_duration = 120
            };

            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<_pms_data_type>(_rbuffer);
            }
            catch (SocketException e)
            {
                pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty };
            }

            _client.Close();

            bool _result = false;

            switch (pms_data_type.status)
            {
                case 0:
                    _result = true;
                    break;
                case 1:
                    _result = false;
                    break;
                default:
                    _result = false;
                    break;
            }

            return _result;
        }
Esempio n. 22
0
        // 모닝콜 설정
        public bool SetMorningCall(string _ext, string _week, int _hour, int _minutes, int repeat_week)
        {
            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);

            _pms_data_type pms_data_type = new _pms_data_type()
            {
                cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ
                ,
                extension = _ext
                ,
                week = _week
                ,
                hour = _hour
                ,
                minutes = _minutes
                ,
                try_interval = 3
                ,
                repeat_times = 5
                ,
                repeat_week = repeat_week
                ,
                ring_duration = 120
            };

            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 <_pms_data_type>(_rbuffer);
            }
            catch (SocketException e)
            {
                pms_data_type = new _pms_data_type()
                {
                    cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty
                };
            }

            _client.Close();

            bool _result = false;

            switch (pms_data_type.status)
            {
            case 0:
                _result = true;
                break;

            case 1:
                _result = false;
                break;

            default:
                _result = false;
                break;
            }

            return(_result);
        }
Esempio n. 23
0
        protected _pms_data_type GetPolicies4HouseKeep(string code, string ext, string mtime)
        {
            _pms_data_type data = new _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;
                    string hh = mtime.Substring(0, 2);
                    string mm = mtime.Substring(2, 2);
                    int hour = string.IsNullOrEmpty(hh) == true ? 0 : int.Parse(hh);
                    int 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;
        }
Esempio n. 24
0
        public void Send(_pms_data_type rdata)
        {
            _pms_data_type msg = GetMsg(rdata);
            byte[] buffer = util.GetBytes(msg);

            try
            {
                client.Send(buffer, buffer.Length);
            }
            catch (SocketException ex)
            {
                throw ex;
            }
        }
Esempio n. 25
0
        public _pms_data_type GetMsg(_pms_data_type rdata)
        {
            _pms_data_type msg = new _pms_data_type();

            switch (rdata.cmd)
            {
                case STRUCTS.PMS_SET_MORNING_CALL_REQ:
                    msg.cmd = STRUCTS.PMS_SET_MORNING_CALL_RES;
                    msg.status = rdata.status;
                    msg.pList = rdata.pList;
                    msg.extension = rdata.extension;
                    break;
                case STRUCTS.PMS_SET_LANGUAGE_REQ:
                    msg.cmd = STRUCTS.PMS_SET_LANGUAGE_RES;
                    msg.status = rdata.status;
                    msg.pList = rdata.pList;
                    msg.extension = rdata.extension;
                    break;
                case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ:
                    msg.cmd = STRUCTS.PMS_REPORT_FUNCTION_KEY_RES;
                    msg.status = rdata.status;
                    msg.pList = rdata.pList;
                    msg.extension = rdata.extension;
                    break;
                case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ:
                    msg.cmd = STRUCTS.PMS_REPORT_MAKEUP_STATUS_RES;
                    msg.status = rdata.status;
                    msg.pList = rdata.pList;
                    msg.extension = rdata.extension;
                    break;
            }
            return msg;
        }
Esempio n. 26
0
        private void Relayservice_Device2CorePmsEvent(object sender, _pms_data_type pmsdata)
        {
            RoomItem roomitem = null;

            foreach (var floor in floors)
            {
                roomitem = floor.list.FirstOrDefault(x => x.RoomNum.Equals(pmsdata.extension));
                if (roomitem == null)
                    continue;
                else
                    break;
            }

            if (roomitem == null)
            {
                pmsdata.status = pmsdata.status = STRUCTS.PMS_STATUS_FAIL;
                relayservice.SendReplay(pmsdata);
                return;
            }

            try
            {
                switch (pmsdata.cmd)
                {
                    case STRUCTS.PMS_SET_MORNING_CALL_REQ:
                        foreach (var floor in floors)
                        {
                            foreach (var room in floor.list)
                            {
                                if (room.RoomNum.Equals(pmsdata.extension))
                                {
                                    room.Hour = pmsdata.hour;
                                    room.Minutes = pmsdata.minutes;
                                    break;
                                }
                            }
                        }
                        break;
                    case STRUCTS.PMS_SET_LANGUAGE_REQ:
                        foreach (var floor in floors)
                        {
                            foreach (var room in floor.list)
                            {
                                if (room.RoomNum.Equals(pmsdata.extension))
                                {
                                    room.Languages = pmsdata.language.ToString();
                                    break;
                                }
                            }
                        }
                        break;
                    case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ:
                        if (pmsdata.function_key.Equals(fk_cleanroom))
                        {
                            switch (pmsdata.function_key_cmd)
                            {
                                case 1:
                                    // 청소 신청
                                    roomitem.States_Clean = "1";
                                    break;
                                case 2:
                                default:
                                    // 청소 신청취소
                                    roomitem.States_Clean = "0";
                                    break;
                            }
                        }
                        else if (pmsdata.function_key.Equals(fk_dnd))
                        {
                            switch (pmsdata.function_key_cmd)
                            {
                                case 1:
                                    // DND 신청
                                    roomitem.States_DnD = "1";
                                    break;
                                case 2:
                                default:
                                    // DND 해제
                                    roomitem.States_DnD = "0";
                                    break;
                            }
                        }
                        else if (pmsdata.function_key.Equals(fk_laundry))
                        {
                            switch (pmsdata.function_key_cmd)
                            {
                                case 1:
                                    // 세탁 신청
                                    roomitem.States_Laundary = "1";
                                    break;
                                case 2:
                                default:
                                    // 세탁 신청취소
                                    roomitem.States_Laundary = "0";
                                    break;
                            }
                        }
                        else if (pmsdata.function_key.Equals(fk_roomservice))
                        {
                            switch (pmsdata.function_key_cmd)
                            {
                                case 1:
                                    // 룸서비스 신청
                                    break;
                                case 2:
                                default:
                                    // 룸서비스 신청취소
                                    break;
                            }
                        }
                        //else if (pmsdata.function_key.Equals(fk_cleaningroom_complete))
                        //{
                        //    switch (pmsdata.function_key_cmd)
                        //    {
                        //        case 1:
                        //        case 2:
                        //        default:
                        //            // 청소 완료
                        //            break;
                        //    }
                        //}
                        //else if (pmsdata.function_key.Equals(fk_cleaningroom_inspection))
                        //{
                        //    switch (pmsdata.function_key_cmd)
                        //    {
                        //        case 1:
                        //        case 2:
                        //        default:
                        //            // 청소 확인
                        //            break;
                        //    }
                        //}
                        //else if (pmsdata.function_key.Equals(fk_emergency))
                        //{
                        //    switch (pmsdata.function_key_cmd)
                        //    {
                        //        case 1:
                        //            // 응급 신청
                        //            break;
                        //        case 2:
                        //        default:
                        //            // 응급 해제
                        //            break;
                        //    }
                        //}
                        break;
                    case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ:
                        switch (pmsdata.makeup_room_status)
                        {
                            case 1:
                                // 청소 완료
                                roomitem.States_Clean = "2";
                                break;
                            case 2:
                                // 청소 완료 취소
                                roomitem.States_Clean = "1";
                                break;
                            case 3:
                                // 청소 점검 완료
                                roomitem.States_Clean = "3";
                                break;
                            case 4:
                                // 청소 점검 완료 취소
                                roomitem.States_Clean = "1";
                                break;
                        }
                        break;
                    default:
                        // Debug.WriteLine("Pmsserver_ReqPMSSetEvent: " + pmsdata.function_key + " // " + pmsdata.function_key_cmd);
                        break;
                }

                relayservice.SendReplay(pmsdata);
            }
            catch (Exception e)
            {
                pmsdata.status = pmsdata.status = STRUCTS.PMS_STATUS_FAIL;
                relayservice.SendReplay(pmsdata);
            }
        }
Esempio n. 27
0
        // 체크인/아웃 발신 허용/금지
        public bool CheckIn(chkinroom _chkinroom)
        {
            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);

            string allowedstr = string.Empty;
            string forbiddenstr = string.Empty;

            _pms_data_type pms_data_type = new _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]);
                    }
                }
            }

            pms_data_type.allowedPrefix = allowedstr;
            pms_data_type.forbiddenPrefix = forbiddenstr;
            //pms_data_type.forbiddenPrefix = "";

            byte[] _sbuffer = util.GetBytes(pms_data_type);
            byte[] _rbuffer = null;
            //_cgi_res_hdr cgi_res_hdr;

            try
            {
                _client.Send(_sbuffer, _sbuffer.Length);
                _rbuffer = _client.Receive(ref _remoteEP);

                pms_data_type = util.GetObject<_pms_data_type>(_rbuffer);
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                pms_data_type = new _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;
        }
Esempio n. 28
0
        protected bool GetResult(_pms_data_type sdata, _pms_data_type rdata)
        {
            bool result = false;

            if (sdata.cmd == STRUCTS.CGI_PMS_CLEAR_FUNCTION_KEY_RES)
            {
                switch (sdata.status)
                {
                    case 0:
                        result = true;
                        break;
                    case 1:
                        result = false;
                        break;
                    default:
                        result = false;
                        break;
                }
            }
            else
            {
                result = false;
            }

            return result;
        }
Esempio n. 29
0
 public void SendReplay(_pms_data_type pmsdata)
 {
     h2.Send(pmsdata);
 }
Esempio n. 30
0
        private void H2_PassDevice2PmsEvent(object sender, _pms_data_type pmsdata)
        {
            if (Device2CorePmsEvent != null)
            {
                Device2CorePmsEvent(this, pmsdata);
            }

            if (RunType == RunningType.CORETREE)
            {
                return;
            }

            string t2_code = string.Empty;
            string t2_emer = "0";
            string t2_dnd  = "0";
            string t2_mur  = "0";
            string t2_txt1 = string.Empty;

            switch (pmsdata.cmd)
            {
            case STRUCTS.PMS_SET_MORNING_CALL_REQ:
                t2_code = "C";
                DateTime nowdate   = DateTime.Now;
                DateTime mcalldate = DateTime.Parse(string.Format("{0}-{1}-{2} {3:D2}:{4:D2}:00", nowdate.Year, nowdate.Month, nowdate.Day, pmsdata.hour, pmsdata.minutes));
                TimeSpan ts        = mcalldate - nowdate;

                if (ts.TotalSeconds >= 0)
                {
                    t2_txt1 = mcalldate.ToString("yyyyMMddHHmm");
                }
                else
                {
                    nowdate.AddSeconds(-(ts.TotalSeconds));
                    t2_txt1 = nowdate.ToString("yyyyMMddHHmm");
                }
                break;

            //case STRUCTS.PMS_CLEAR_MORNING_CALL_REQ:
            //    t2_code = "D";
            //    break;
            case STRUCTS.PMS_SET_LANGUAGE_REQ:
                break;

            case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ:
                if (pmsdata.function_key.Equals(fk_cleanroom))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                        t2_mur = "1";
                        break;

                    case 2:
                    default:
                        t2_mur = "0";
                        break;
                    }
                }
                else if (pmsdata.function_key.Equals(fk_dnd))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                        t2_dnd = "1";
                        break;

                    case 2:
                    default:
                        t2_dnd = "0";
                        break;
                    }
                }
                else if (pmsdata.function_key.Equals(fk_laundry))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                        t2_code = "G";
                        break;

                    case 2:
                    default:
                        t2_code = "H";
                        break;
                    }
                }
                else if (pmsdata.function_key.Equals(fk_roomservice))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                        t2_code = "E";
                        break;

                    case 2:
                    default:
                        t2_code = "F";
                        break;
                    }
                }
                else if (pmsdata.function_key.Equals(fk_cleaningroom_complete))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                    case 2:
                    default:
                        t2_code = "0";
                        break;
                    }
                }
                else if (pmsdata.function_key.Equals(fk_cleaningroom_inspection))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                    case 2:
                    default:
                        t2_code = "9";
                        break;
                    }
                }
                else if (pmsdata.function_key.Equals(fk_emergency))
                {
                    switch (pmsdata.function_key_cmd)
                    {
                    case 1:
                        t2_emer = "1";
                        break;

                    case 2:
                    default:
                        t2_emer = "0";
                        break;
                    }
                }
                break;

            case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ:
                switch (pmsdata.makeup_room_status)
                {
                case 1:
                    t2_code = "0";
                    break;

                case 2:
                    t2_code = "2";
                    break;

                case 3:
                    t2_code = "9";
                    break;

                case 4:
                    t2_code = "2";
                    break;
                }
                break;

            default:
                // Debug.WriteLine("Pmsserver_ReqPMSSetEvent: " + pmsdata.function_key + " // " + pmsdata.function_key_cmd);
                break;
            }

            using (MSDBHelper db = new MSDBHelper(DBServer))
            {
                string ext = string.Format("{0:D4}", int.Parse(pmsdata.extension));
                string sql = string.Format("insert into INF_CT02 ( T2_ROOM, T2_CODE, T2_EMER, T2_DND, T2_MUR, T2_DATE, T2_TXT1 ) values ( '{0}', '{1}', '{2}', '{3}', '{4}', getdate(), '{5}' )", sitecode + ext, t2_code, t2_emer, t2_dnd, t2_mur, t2_txt1);
                db.Sql = sql;
                try
                {
                    db.Open();
                    db.BeginTran();
                    int count = db.GetEffectedCount();
                    db.Commit();

                    h2.Send(pmsdata);
                }
                catch (SqlException e)
                {
                    util.WriteLog(e.Message);
                    db.Rollback();
                    pmsdata.status = STRUCTS.PMS_STATUS_FAIL;
                    h2.Send(pmsdata);
                }
                catch (System.Net.Sockets.SocketException ex)
                {
                    util.WriteLog(ex.Message);
                }
            }
        }
Esempio n. 31
0
        private void H2_PassDevice2PmsEvent(object sender, _pms_data_type pmsdata)
        {
            if (Device2CorePmsEvent != null)
                Device2CorePmsEvent(this, pmsdata);

            if (RunType == RunningType.CORETREE) return;

            string t2_code = string.Empty;
            string t2_emer = "0";
            string t2_dnd = "0";
            string t2_mur = "0";
            string t2_txt1 = string.Empty;

            switch (pmsdata.cmd)
            {
                case STRUCTS.PMS_SET_MORNING_CALL_REQ:
                    t2_code = "C";
                    DateTime nowdate = DateTime.Now;
                    DateTime mcalldate = DateTime.Parse(string.Format("{0}-{1}-{2} {3:D2}:{4:D2}:00", nowdate.Year, nowdate.Month, nowdate.Day, pmsdata.hour, pmsdata.minutes));
                    TimeSpan ts = mcalldate - nowdate;

                    if (ts.TotalSeconds >= 0)
                    {
                        t2_txt1 = mcalldate.ToString("yyyyMMddHHmm");
                    }
                    else
                    {
                        nowdate.AddSeconds(-(ts.TotalSeconds));
                        t2_txt1 = nowdate.ToString("yyyyMMddHHmm");
                    }
                    break;
                //case STRUCTS.PMS_CLEAR_MORNING_CALL_REQ:
                //    t2_code = "D";
                //    break;
                case STRUCTS.PMS_SET_LANGUAGE_REQ:
                    break;
                case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ:
                    if (pmsdata.function_key.Equals(fk_cleanroom))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                                t2_mur = "1";
                                break;
                            case 2:
                            default:
                                t2_mur = "0";
                                break;
                        }
                    }
                    else if (pmsdata.function_key.Equals(fk_dnd))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                                t2_dnd = "1";
                                break;
                            case 2:
                            default:
                                t2_dnd = "0";
                                break;
                        }
                    }
                    else if (pmsdata.function_key.Equals(fk_laundry))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                                t2_code = "G";
                                break;
                            case 2:
                            default:
                                t2_code = "H";
                                break;
                        }
                    }
                    else if (pmsdata.function_key.Equals(fk_roomservice))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                                t2_code = "E";
                                break;
                            case 2:
                            default:
                                t2_code = "F";
                                break;
                        }
                    }
                    else if (pmsdata.function_key.Equals(fk_cleaningroom_complete))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                            case 2:
                            default:
                                t2_code = "0";
                                break;
                        }
                    }
                    else if (pmsdata.function_key.Equals(fk_cleaningroom_inspection))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                            case 2:
                            default:
                                t2_code = "9";
                                break;
                        }
                    }
                    else if (pmsdata.function_key.Equals(fk_emergency))
                    {
                        switch (pmsdata.function_key_cmd)
                        {
                            case 1:
                                t2_emer = "1";
                                break;
                            case 2:
                            default:
                                t2_emer = "0";
                                break;
                        }
                    }
                    break;
                case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ:
                    switch (pmsdata.makeup_room_status)
                    {
                        case 1:
                            t2_code = "0";
                            break;
                        case 2:
                            t2_code = "2";
                            break;
                        case 3:
                            t2_code = "9";
                            break;
                        case 4:
                            t2_code = "2";
                            break;
                    }
                    break;
                default:
                    // Debug.WriteLine("Pmsserver_ReqPMSSetEvent: " + pmsdata.function_key + " // " + pmsdata.function_key_cmd);
                    break;
            }

            using (MSDBHelper db = new MSDBHelper(DBServer))
            {
                string ext = string.Format("{0:D4}", int.Parse(pmsdata.extension));
                string sql = string.Format("insert into INF_CT02 ( T2_ROOM, T2_CODE, T2_EMER, T2_DND, T2_MUR, T2_DATE, T2_TXT1 ) values ( '{0}', '{1}', '{2}', '{3}', '{4}', getdate(), '{5}' )", sitecode + ext, t2_code, t2_emer, t2_dnd, t2_mur, t2_txt1);
                db.Sql = sql;
                try
                {
                    db.Open();
                    db.BeginTran();
                    int count = db.GetEffectedCount();
                    db.Commit();

                    h2.Send(pmsdata);
                }
                catch (SqlException e)
                {
                    util.WriteLog(e.Message);
                    db.Rollback();
                    pmsdata.status = STRUCTS.PMS_STATUS_FAIL;
                    h2.Send(pmsdata);
                }
                catch (System.Net.Sockets.SocketException ex)
                {
                    util.WriteLog(ex.Message);
                }
            }
        }
Esempio n. 32
0
        // 체크인/아웃 발신 허용/금지
        public bool CheckIn(chkinroom _chkinroom)
        {
            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);

            string allowedstr   = string.Empty;
            string forbiddenstr = string.Empty;

            _pms_data_type pms_data_type = new _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]);
                    }
                }
            }

            pms_data_type.allowedPrefix   = allowedstr;
            pms_data_type.forbiddenPrefix = forbiddenstr;
            //pms_data_type.forbiddenPrefix = "";

            byte[] _sbuffer = util.GetBytes(pms_data_type);
            byte[] _rbuffer = null;
            //_cgi_res_hdr cgi_res_hdr;

            try
            {
                _client.Send(_sbuffer, _sbuffer.Length);
                _rbuffer = _client.Receive(ref _remoteEP);

                pms_data_type = util.GetObject <_pms_data_type>(_rbuffer);
            }
            catch (SocketException sockex)
            {
                util.WriteLog(sockex.Message);
                pms_data_type = new _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);
        }
Esempio n. 33
0
 void pmsSrv_ReqPMSSetEvent(PMSServer sender, _pms_data_type pmsdata)
 {
     //var user = OnlineUsers.Keys.Where(o => o.Context.ClientAddress == context.ClientAddress).Single();
     var u = OnlineUsers.Keys.FirstOrDefault();
     ResponseFromTossServer r = new ResponseFromTossServer() { Type = CommandType.Message, Data = pmsdata };
     if (u != null)
         u.Context.Send(JsonConvert.SerializeObject(r));
 }