Example #1
0
        public static void DeleteAddressMap(int sysNo)
        {
            var addressMap = AddressMapDA.LoadAddressMap(sysNo);

            AddressMapDA.DeleteAddressMap(sysNo);

            UpdateHomeCacheDataByAddressMap(addressMap);
        }
Example #2
0
        public static List <HomeMapMarker> GetHomeMarkers(int addressMapSysNo, int compnaySysNo)
        {
            //报警状态:烟雾报警,测试报警,低电量报警
            var warnStatus = new List <SmokeDetectorStatus> {
                SmokeDetectorStatus.Warning, SmokeDetectorStatus.TestWarning, SmokeDetectorStatus.LowPower
            };

            var addressMap = AddressMapDA.LoadAddressMap(addressMapSysNo);

            if (addressMap == null)
            {
                throw new BusinessException("addressMap 不存在");
            }

            if (!string.IsNullOrWhiteSpace(addressMap.SmokeCoordinate))
            {
                var countAddressList = new List <SmokeDetectorCountAddress>();
                var addressWarnList  = new List <AddressWarn>();
                var smokeDetectors   = new List <SmokeDetector>();

                var markers       = JsonConvert.DeserializeObject <List <HomeMapMarker> >(addressMap.SmokeCoordinate);
                var addressMarker = markers.Where(a => a.Type == AddressMapMarkerType.Address);
                var smokeMarker   = markers.Where(a => a.Type == AddressMapMarkerType.SmokeDetector);

                if (addressMarker.Count() > 0)
                {
                    var addressSysNos = addressMarker.Select(a => a.SysNo).ToList();
                    countAddressList = SmokeDetectorDA.LoadSmokeDetectorCountInArea(compnaySysNo, addressSysNos);
                    addressWarnList  = SmokeDetectorDA.GetAddressWarnCount(addressSysNos);
                }

                if (smokeDetectors.Count() > 0)
                {
                    smokeDetectors = SmokeDetectorDA.LoadSmokeDetectors(smokeMarker.Select(a => a.SysNo).ToList());
                }

                markers.ForEach(marker => {
                    if (marker.Type == AddressMapMarkerType.Address)
                    {
                        var countAddress = countAddressList.FirstOrDefault(a => a.AddressSysNo == marker.SysNo);
                        if (countAddress != null)
                        {
                            marker.DeviceTotal   = countAddress.ALLSmokeCount;
                            marker.DeviceOnline  = countAddress.OnlineCount;
                            marker.DeviceOffline = countAddress.OfflineCount;
                        }

                        var addressWarn = addressWarnList.FirstOrDefault(a => a.AddressSysNo == marker.SysNo);
                        if (addressWarn != null && addressWarn.WarnCount > 0)
                        {
                            marker.IsWarning = true;
                        }
                    }
                    else if (marker.Type == AddressMapMarkerType.SmokeDetector)
                    {
                        var smokeDetector = smokeDetectors.FirstOrDefault(a => a.SysNo == marker.SysNo);
                        if (smokeDetector != null && smokeDetector.Status.HasValue && warnStatus.Contains(smokeDetector.Status.Value))
                        {
                            marker.IsWarning = true;
                        }
                    }
                });

                return(markers);
            }

            return(new List <HomeMapMarker>());
        }
Example #3
0
        private static void UpdateHomeCacheDataByAddressMap(int addressMapSysNo)
        {
            var addressMap = AddressMapDA.LoadAddressMap(addressMapSysNo);

            UpdateHomeCacheDataByAddressMap(addressMap);
        }