Beispiel #1
0
        public static Boolean Compare(this DeviceDoor current, DeviceDoor other)
        {
            if (other == null)
            {
                return(false);
            }

            return(current.DeviceID == other.DeviceID);
        }
Beispiel #2
0
        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);
        }