public void RemoveZone(Zone zone) { DeviceConfiguration.Zones.Remove(zone); zone.OnColorTypeChanged(); foreach (var device in zone.DevicesInZone) { device.Zone = null; device.ZoneUID = Guid.Empty; device.OnChanged(); } var devicesInZoneLogic = new List<Device>(zone.DevicesInZoneLogic); foreach (var device in devicesInZoneLogic) { var dateTime = DateTime.Now; DeviceConfiguration.InvalidateOneDevice(device); DeviceConfiguration.UpdateOneDeviceCrossReferences(device); device.OnChanged(); } zone.UpdateExternalDevices(); var indicatorsInZone = new List<Device>(zone.IndicatorsInZone); foreach (var device in indicatorsInZone) { DeviceConfiguration.InvalidateOneDevice(device); DeviceConfiguration.UpdateOneDeviceCrossReferences(device); device.OnChanged(); } }