public static void DeleteAddressMap(int sysNo) { var addressMap = AddressMapDA.LoadAddressMap(sysNo); AddressMapDA.DeleteAddressMap(sysNo); UpdateHomeCacheDataByAddressMap(addressMap); }
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>()); }
private static void UpdateHomeCacheDataByAddressMap(int addressMapSysNo) { var addressMap = AddressMapDA.LoadAddressMap(addressMapSysNo); UpdateHomeCacheDataByAddressMap(addressMap); }