public void AddDeviceToZone(Device parentDevice, Zone zone) { foreach (var device in GetMPTGroup(parentDevice)) { if (device.Zone != null) { device.Zone.DevicesInZone.Remove(device); device.Zone.UpdateExternalDevices(); device.Zone.OnChanged(); } device.Zone = zone; if (zone != null) { device.ZoneUID = zone.UID; zone.DevicesInZone.Add(device); zone.UpdateExternalDevices(); zone.OnChanged(); } else { device.ZoneUID = Guid.Empty; } device.UpdateHasExternalDevices(); device.OnChanged(); } }
public void RemoveDeviceFromZone(Device parentDevice, Zone zone) { foreach (var device in GetMPTGroup(parentDevice)) { var oldZone = device.Zone; device.Zone = null; device.ZoneUID = Guid.Empty; if (oldZone != null) { oldZone.UpdateExternalDevices(); } if (zone != null) { zone.DevicesInZone.Remove(device); zone.UpdateExternalDevices(); zone.OnChanged(); } device.OnChanged(); } }
public void ChangeZone(Zone zone) { foreach (var device in zone.DevicesInZone) { device.OnChanged(); } var devicesInZoneLogic = new List<Device>(zone.DevicesInZoneLogic); foreach (var device in devicesInZoneLogic) { DeviceConfiguration.UpdateOneDeviceCrossReferences(device); device.OnChanged(); } var indicatorsInZone = new List<Device>(zone.IndicatorsInZone); foreach (var device in indicatorsInZone) { DeviceConfiguration.UpdateOneDeviceCrossReferences(device); device.OnChanged(); } zone.OnChanged(); }