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; } }
public void NotifyDbChange() { SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this)); client.NotifyDBChange(SecureService.DBChangedConstant.AuthorityChanged, ""); }
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; } }
public object[] GetProgress() { SecureService.SecureServiceClient client = new SecureService.SecureServiceClient(new System.ServiceModel.InstanceContext(this)); return client.GetR23Progress(); }
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; }