/// <summary> /// 删除门禁 /// </summary> /// <param name="doorAccess"></param> public void RemoveDoorAccess(DoorAccessDevController doorAccess) { if (DoorAccessList.Contains(doorAccess)) { DoorAccessList.Remove(doorAccess); } }
/// <summary> /// 添加门禁 /// </summary> /// <param name="doorAccess"></param> public void AddDoorAccess(DoorAccessDevController doorAccess) { DoorAccessDevController dev = DoorAccessList.Find(i => i.DevId == doorAccess.DevId); if (dev == null) { DoorAccessList.Add(doorAccess); } }
/// <summary> /// 获取门禁所有信息 /// </summary> private void GetDoorAccessData(GameObject door, string doorID, int?areaId, out DoorAccessDevController controller, out Dev_DoorAccess doorAccessInfo) { DevInfo devInfo = GetDevInfo(areaId); controller = SetDevController(door, devInfo, areaId); DevPos pos = GetDevPos(devInfo.DevID, door); devInfo.Pos = pos; doorAccessInfo = GetDoorAccessInfo(devInfo, doorID, areaId); doorAccessInfo.DevInfo = devInfo; controller.DoorAccessInfo = doorAccessInfo; }
public void AddSave(List <GameObject> DoorAccessList, string doorID, int?areaId) { List <DevNode> doorList = new List <DevNode>(); //List<Dev_DoorAccess> doorInfos = new List<Dev_DoorAccess>(); if (IsDoorAccessAdd(DoorAccessList)) { UGUIMessageBox.Show(errorMsg); for (int i = DoorAccessList.Count - 1; i >= 0; i--) { DestroyImmediate(DoorAccessList[i]); } return; } foreach (var door in DoorAccessList) { DoorAccessDevController controller; Dev_DoorAccess doorInfo; GetDoorAccessData(door, doorID, areaId, out controller, out doorInfo); doorList.Add(controller); //doorInfos.Add(doorInfo); } ShowEditUI(doorList); CommunicationObject service = CommunicationObject.Instance; if (service) { //bool value = service.AddDoorAccess(doorInfos); foreach (var dev in doorList) { DoorAccessDevController doorDev = dev as DoorAccessDevController; if (doorDev) { doorDev.DoorAccessInfo = service.AddDoorAccess(doorDev.DoorAccessInfo); if (doorDev.DoorAccessInfo != null) { doorDev.Info = doorDev.DoorAccessInfo.DevInfo; } } } } }
/// <summary> /// 更换当前区域下,门的开关状态 /// </summary> /// <param name="state"></param> private void PushDoorStateInfo(DoorAccessState state) { DoorAccessState door = DoorStateList.Find(i => i.DoorId == state.DoorId && i.Dev.Id == state.Dev.Id); if (door != null) { door.Abutment_CardState = state.Abutment_CardState; } else { DoorStateList.Add(state); } if (FactoryDepManager.currentDep == null) { return; } string parentId = state.Dev.ParentId.ToString(); if (IsDepDev(FactoryDepManager.currentDep, parentId)) { DevNode dev = RoomFactory.Instance.GetCreateDevById(state.Dev.DevID, int.Parse(parentId)); if (dev != null) { DoorAccessDevController doorAccess = dev as DoorAccessDevController; if (doorAccess) { DoorAccessItem doorItem = doorAccess.DoorItem; if (doorItem == null) { Log.Error("DoorAccessManage.PushDoorStateInfo.DoorAcessItem is null:" + doorAccess.Info == null? "devinfo id is null":doorAccess.Info.Id.ToString()); return; } doorItem.ChangeDoorState(state); if (!DepDoorList.Contains(doorItem)) { DepDoorList.Add(doorItem); } } } } }
/// <summary> /// 设置设备的Controller /// </summary> /// <param name="devModel"></param> /// <param name="devInfo"></param> /// <param name="parentID"></param> private DoorAccessDevController SetDevController(GameObject devModel, DevInfo devInfo, int?parentID) { ObjectModel_DoorAccess access = devModel.GetComponent <ObjectModel_DoorAccess>(); DepNode node = RoomFactory.Instance.GetDepNodeById((int)parentID); devModel.transform.parent = GetDevContainer(node).transform; DoorAccessDevController controller = devModel.AddMissingComponent <DoorAccessDevController>(); controller.DevId = devInfo.DevID; if (RoomFactory.Instance) { RoomFactory.Instance.SaveDepDevInfo(node, controller, devInfo); } if (access) { controller.DoorItem = access.DoorItem; access.DoorItem.AddDoorAccess(controller); } devModel.RemoveComponent <ObjectModel_DoorAccess>(); return(controller); }
/// <summary> /// 删除子设备(门禁、基站等) /// </summary> /// <param name="dev"></param> /// <returns></returns> private bool ClearSubDev(DevNode dev) { if (dev as DoorAccessDevController) { DoorAccessDevController controller = dev as DoorAccessDevController; List <Dev_DoorAccess> doorAccessList = new List <Dev_DoorAccess>(); doorAccessList.Add(controller.DoorAccessInfo); bool value = CommunicationObject.Instance.DeleteDoorAccess(doorAccessList); return(true); } else if (TypeCodeHelper.IsLocationDev(dev.Info.TypeCode.ToString())) { bool value = CommunicationObject.Instance.DeleteArchor(dev.Info.Id); //print("DeleteArchor:"+value); return(true); } else { return(false); } }
/// <summary> /// 显示当前区域门的状态 /// </summary> /// <param name="currentDep"></param> private void ShowDepDoors(DepNode currentDep) { List <DoorAccessState> doorStates = DoorStateList.FindAll(dev => dev.Dev.ParentId == currentDep.NodeID); if (doorStates != null && doorStates.Count != 0) { foreach (var door in doorStates) { DevNode dev = RoomFactory.Instance.GetCreateDevById(door.Dev.DevID, (int)door.Dev.ParentId); DoorAccessDevController devController = dev as DoorAccessDevController; if (devController != null) { DoorAccessItem doorItem = devController.DoorItem; doorItem.ChangeDoorState(door); if (!DepDoorList.Contains(doorItem)) { DepDoorList.Add(doorItem); } } } } }
/// <summary> /// 删除设备信息 /// </summary> /// <param name="dev"></param> private void RemoveDevCache(DevNode dev) { if (RoomFactory.Instance) { RoomFactory.Instance.RemoveDevInfo(dev); } if (dev is DoorAccessDevController) { DoorAccessDevController doorAccess = dev as DoorAccessDevController; if (doorAccess.DoorItem) { doorAccess.DoorItem.RemoveDoorAccess(doorAccess); } } if (CameraSceneManager.Instance) { if (CameraSceneManager.Instance.alignCamera.GetTarget() == dev.gameObject.transform) { //FactoryDepManager.currentDep.FocusOn(); dev.FocusOff(); } } }
/// <summary> /// 查找另一个门禁 /// </summary> /// <param name="currentDev"></param> /// <returns></returns> public DoorAccessDevController GetAnotherAccess(DoorAccessDevController currentDev) { DoorAccessDevController dev = DoorAccessList.FirstOrDefault(door => door.Info.DevID != currentDev.Info.DevID); return(dev); }