public static Boolean Compare(this DeviceDoor current, DeviceDoor other) { if (other == null) { return(false); } return(current.DeviceID == other.DeviceID); }
private DeviceDoor ToDeviceDoor(DoorInfo doorInfo, DeviceInfo deviceInfo) { var deviceDoor = new DeviceDoor(); deviceDoor.Name = doorInfo.Name; deviceDoor.Code = doorInfo.DoorIndex.ToString(); deviceDoor.ElectricalAppliances = doorInfo.ElectricalAppliances; deviceDoor.CheckOutOptions = doorInfo.CheckOutAction.HasValue ? (int)doorInfo.CheckOutAction : 0; deviceDoor.Status = 1; deviceDoor.Remark = doorInfo.Remark; deviceDoor.RingType = doorInfo.AlertType; var doorLinkageAlarms = deviceInfo.Services.OfType <DoorLinkageService>(); if (doorLinkageAlarms.Any()) { var doorLinkageAlarm = doorLinkageAlarms.First(); if (doorLinkageAlarm.Enabled && doorLinkageAlarm.AlarmOption.HasValue) { if (doorInfo.DoorType == DoorType.Master) { deviceDoor.LinkageAlarm = (doorLinkageAlarm.AlarmOption == DoorLinkageOptions.All || doorLinkageAlarm.AlarmOption == DoorLinkageOptions.Master); } else if (doorInfo.DoorType == DoorType.Slave) { deviceDoor.LinkageAlarm = (doorLinkageAlarm.AlarmOption == DoorLinkageOptions.All || doorLinkageAlarm.AlarmOption == DoorLinkageOptions.Slave); } } } var doorOpenBehaviorServices = deviceInfo.Services.OfType <DoorOpenBehaviorService>(); if (doorOpenBehaviorServices.Any()) { var delayOpen = doorOpenBehaviorServices.FirstOrDefault(x => x.Type == DoorOpenBehavior.DelayOpen); if (delayOpen != null && delayOpen.Enabled) { deviceDoor.DelayOpenSeconds = delayOpen.Seconds; } var overTimeOpen = doorOpenBehaviorServices.FirstOrDefault(x => x.Type == DoorOpenBehavior.OverTimeOpen); if (overTimeOpen != null && overTimeOpen.Enabled) { deviceDoor.OverTimeOpenSeconds = overTimeOpen.Seconds; } var illegalOpen = doorOpenBehaviorServices.FirstOrDefault(x => x.Type == DoorOpenBehavior.IllegalOpen); if (illegalOpen != null && illegalOpen.Enabled) { deviceDoor.IllegalOpenSeconds = illegalOpen.Seconds; } } var duressDoorService = deviceInfo.Services.OfType <DuressService>(); if (duressDoorService.Any()) { deviceDoor.DuressEnabled = duressDoorService.First().Enabled; deviceDoor.DuressFingerPrintIndex = duressDoorService.First().FingerPrintIndex ?? 0; deviceDoor.DuressOpen = duressDoorService.First().IsOpenDoor ?? false; deviceDoor.DuressAlarm = duressDoorService.First().IsTriggerAlarm ?? false; deviceDoor.DuressPassword = duressDoorService.First().Password; } return(deviceDoor); }