Esempio n. 1
0
        public string AddCard(AddCardInfo info)
        {
            string rooms = string.Join(",", info.ERIDs);
          //  return "0: add " + info.CardNo + " to  " + rooms + "  success!";
            try
            {
              
                
                for (int i = 0; i < info.ERIDs.ToArray().Length; i++)
                {
                    Exchange(info.MCNSID, info.ERIDs[i], info.CardNo, info.Name, info.StartDate, info.EndDate);
                  
                }

                SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this));
                client.NotifyDBChange(SecureService.DBChangedConstant.AuthorityChanged,"");

                return "0:success!"+rooms;
            }
            catch (Exception ex)
            {
                return "-1:" + ex.Message+","+ex.StackTrace;
            }

          
        }
Esempio n. 2
0
 public void NotifyDbChange()
 {
     SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this));
     client.NotifyDBChange(SecureService.DBChangedConstant.AuthorityChanged, "");
 }
Esempio n. 3
0
        public string AddCard(AddCardInfo[] infos)
        {
            //string rooms = ""; string.Join(",", info.ERIDs);
            //  return "0: add " + info.CardNo + " to  " + rooms + "  success!";

            List<string> list = new List<string>();
            try
            {
                foreach (AddCardInfo info in infos)
                {

                    for (int i = 0; i < info.ERIDs.ToArray().Length; i++)
                    {
                        string roleid = R23Exchange(info.MCNSID, info.ERIDs[i], info.CardNo, info.Name, info.StartDate, info.EndDate);
                        list.Add(roleid);
                    }
                }

                SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this));
                if(list.Count>0)
                client.NotifyDBChange(SecureService.DBChangedConstant.AuthorityChanged,string.Join("," ,list.ToArray()));

                return "0:success!";
            }
            catch (Exception ex)
            {
                return "-1:" + ex.Message + "," + ex.StackTrace;
            }
        }
Esempio n. 4
0
        public object[]  GetProgress()
        {

              SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this));
              return  client.GetR23Progress();
        }
Esempio n. 5
0
        public System.Collections.Generic.List<R23DoorInfo> GetR23DoorInfo()
        {
            clsDBComm commDB = new clsDBComm();

            DataTable dt = new DataTable();
            DataTable dtSelect = new DataTable();
            string cmd = "";

            SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this), "CustomBinding_ISecureService");

            //client.SetR23EngineRoomRecovery("AT");覆歸
            cmd = string.Format("select * from tblEngineRoomConfig where ERID not in (18,22,23,24);"); //過濾無門禁功能 18國姓1號東口機房 22國姓1號隧道 23國姓2號隧道 24埔里隧道  
            dt = commDB.SelectDBData(cmd);
            try
            {
                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow ERData in dt.Rows)
                    {
                        R23DoorInfo GDI = new R23DoorInfo();
                        SecureService.PersonData[] RoomPerson;
                        RoomPerson = client.GetR23RoomPerson(ERData["ERNo"].ToString());//查看讀卡機人員清單;取最後一人刷進記錄(公司+姓名)

                        if (RoomPerson.Count() > 0)
                        {
                            string sComp = "";
                            string sName = "";

                            if (RoomPerson.Last().COMP == null)
                            {
                                sComp = "";
                            }
                            else
                            {
                                sComp = RoomPerson.Last().COMP;
                            }

                            if (RoomPerson.Last().NAME == null)
                            {
                                sName = "";
                            }
                            else
                            {
                                sName = RoomPerson.Last().NAME;
                            }


                            if (sComp != "")
                            {
                                if (sComp == "中工處南投工務段")
                                    sComp = sComp.Substring(3, 2);
                                else
                                    sComp = sComp.Substring(0, 2);
                            }
                            if (sName == "強制開門帳號")
                            {
                                sName = "強制開門";
                            }
                            if ((sName == "") && (sComp == ""))
                            {
                                GDI.StayDoorName = RoomPerson.Last().CARDNO;
                            }
                            else
                            {
                                GDI.StayDoorName = sComp + sName;
                            }
                        }
                        //else
                        //{
                        //    GDI.StayDoorName = "none";
                        //}

                        cmd = string.Format("select * from vwEntranceGuardDetail where ERName='{0}';", ERData["ERName"].ToString());

                        dtSelect = commDB.SelectDBData(cmd);

                        if (dtSelect.Rows.Count > 0)
                        {
                            bool SingleHardWareState1 = false;
                            bool SingleHardWareState0 = false;

                            foreach (DataRow vwEGDData in dtSelect.Rows)
                            {
                                SecureService.ControlStatus ControlConnect;
                                ControlConnect = client.GetR23ControlConnect(vwEGDData["ControlID"].ToString());//查詢機房硬體狀態

                                if (ControlConnect.connect)   //連線   
                                    SingleHardWareState1 = true;
                                if (!ControlConnect.connect)  //斷線
                                    SingleHardWareState0 = true;


                                byte[] ReaderStatus;

                                if ((vwEGDData["ControlType"].ToString() == "1") || (vwEGDData["ControlID"].ToString() == "AB-960N-1") || (vwEGDData["ControlID"].ToString() == "AG-960N-1"))
                                {
                                    if ((bool)vwEGDData["IsEnable"])
                                    {
                                        //查看機房ADAM之狀態
                                        if ((vwEGDData["ControlID"].ToString() == "AB-960N-1") || (vwEGDData["ControlID"].ToString() == "AG-960N-1"))//苗栗or中交控
                                        {
                                            //ReaderStatus = client.GetR23ReaderStatus(vwEGDData["ERNo"].ToString());//("AB"/"AG");
                                            if (RoomPerson.Count() > 0)
                                            {
                                                GDI.IsShowPerson = true;
                                                GDI.state = 1;//有人逗留 
                                                GDI.stateAlarm = 1;
                                            }
                                            else
                                            {
                                                GDI.IsShowPerson = false;
                                                GDI.state = 0;     //無人在內 
                                                GDI.stateAlarm = 2;//保全啟動
                                            }
                                        }
                                        else//非苗栗or中交控 無控制器 讀取讀卡機  
                                        {
                                            ReaderStatus = client.GetR23ReaderStatus(vwEGDData["ControlID"].ToString());//("AN-2400N-1");
                                            if (ReaderStatus != null)
                                            {
                                                if (ReaderStatus[32] != 0)
                                                {
                                                    if (RoomPerson.Count() > 0) //查讀卡機是否有人員逗留
                                                    {
                                                        GDI.IsShowPerson = true;
                                                        GDI.state = 1; //有人逗留 

                                                        if (ReaderStatus[32] == 2)//當收到狀態為「保全啟動」在此要強制把stateAlarm設定為「人員逗留」狀態
                                                            GDI.stateAlarm = 1;              //有人逗留 
                                                        else
                                                            GDI.stateAlarm = ReaderStatus[32];
                                                    }
                                                    else
                                                    {
                                                        if (ReaderStatus[32] == 1)           //門禁被開啟
                                                        {
                                                            GDI.StayDoorName = "門禁被開啟";
                                                            GDI.state = 1; //有人逗留 
                                                            GDI.IsShowPerson = true;
                                                        }
                                                        else
                                                        {
                                                            GDI.IsShowPerson = false;
                                                            GDI.state = 0; //無人在內
                                                        }
                                                        GDI.stateAlarm = ReaderStatus[32];               //保全警報  

                                                    }
                                                }
                                                else
                                                {
                                                    GDI.IsShowPerson = false;
                                                    GDI.state = 3;     //斷線
                                                    GDI.stateAlarm = ReaderStatus[32];               //保全警報 
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            if ((SingleHardWareState1) && (SingleHardWareState0))
                            {
                                GDI.ERName = ERData["ERName"].ToString();
                                //為硬體異常(只要state有一個為true)
                                GDI.stateHardware = 1;
                            }
                            else if ((SingleHardWareState1) && (!SingleHardWareState0))
                            {
                                GDI.ERName = ERData["ERName"].ToString();
                                //為硬體正常
                                GDI.stateHardware = 0;
                            }
                            else
                            {
                                //全部顯示斷線
                                GDI.ERName = ERData["ERName"].ToString();
                                GDI.stateHardware = 2;
                                GDI.IsShowPerson = false;
                                GDI.state = 3;
                                GDI.stateAlarm = 0;
                            }
                            d_R23DoorInfo.Add(GDI);
                        }
                        //ControlConnect = client.GetR23ControlConnect("AA-2400N-1");
                        //RoomPerson = client.GetR23RoomPerson("AA");
                        //ReaderStatus = client.GetR23ReaderStatus("AA-2400N-1");

                        //if (RoomPerson.Count() > 0)
                        //{
                        //    string aa = RoomPerson.Last().COMP;
                        //}


                        //string status = ReaderStatus[32].ToString();

                        //GDI.ERName = row["ERName"].ToString();
                        //GDI.stateHardware = 0;
                        //GDI.IsShowPerson = false;
                        //GDI.StayDoorName = "";
                        //GDI.state = 0;
                        //GDI.stateAlarm = ReaderStatus[32];
                        //if (!d_R23DoorInfo.ContainsKey(row["ERID"].ToString()))
                        //{
                        //    d_R23DoorInfo.Add(row["ERID"].ToString(), GDI);
                        //}

                    }
                }
            }
            catch (Exception ex)
            {
                var message = ex.Message + "," + ex.StackTrace;
                throw ex;
            }
            return d_R23DoorInfo;

        }