public static void ChangeEnterButtonDevice(GKDoor door, GKDevice device) { RemoveDependenctElement(door, door.EnterButtonUID); door.EnterButtonUID = device != null ? device.UID : Guid.Empty; if (door.EnterButton != null) { door.EnterButton.Door = null; } door.EnterButton = device; if (door.EnterButton != null) { door.EnterButton.Door = door; door.AddDependentElement(door.EnterButton); } door.OnChanged(); }
/// <summary> /// Удаление ТД /// </summary> /// <param name="door"></param> public static void RemoveDoor(GKDoor door) { Doors.Remove(door); Devices.Where(x => x.UID == door.EnterDeviceUID || x.UID == door.ExitDeviceUID || x.UID == door.LockDeviceUID || x.UID == door.LockControlDeviceUID).ToList().ForEach(x => x.Door = null); door.InputDependentElements.ForEach(x => { x.OutputDependentElements.Remove(door); }); door.OutputDependentElements.ForEach(x => { x.InputDependentElements.Remove(door); x.UpdateLogic(DeviceConfiguration); x.OnChanged(); }); door.OnChanged(); }
/// <summary> /// Изменение ТД /// </summary> /// <param name="door"></param> public static void EditDoor(GKDoor door) { door.OnChanged(); door.OutputDependentElements.ForEach(x => x.OnChanged()); door.InputDependentElements.ForEach(x => x.OnChanged()); }
public static void ChangeExitZone(GKDoor door, GKSKDZone zone) { door.ExitZoneUID = zone != null ? zone.UID : Guid.Empty; door.OnChanged(); }
public static void ChangeLockControlDeviceExit(GKDoor door, GKDevice device) { RemoveDependenctElement(door, door.LockControlDeviceExitUID); door.LockControlDeviceExitUID = device != null ? device.UID : Guid.Empty; if (door.LockControlDeviceExit != null) { door.LockControlDeviceExit.Door = null; } door.LockControlDeviceExit = device; if (door.LockControlDeviceExit != null) { door.LockControlDeviceExit.Door = door; door.AddDependentElement(door.LockControlDeviceExit); } door.OnChanged(); }