/// <summary> /// 向网关同步数据 /// </summary> /// <param name="SendItemList"></param> /// <returns></returns> private bool SynchronousDataToGateway(List <AreaInfo> SendItemList) { foreach (AreaInfo areaInfo in SendItemList) { PartitionControlRequest partitionControlRequest = new PartitionControlRequest(); if (string.IsNullOrEmpty(areaInfo.Areadescribe)) { partitionControlRequest.zoneId = "";//分区标识 } else { partitionControlRequest.zoneId = areaInfo.Areadescribe; //分区标识 } partitionControlRequest.paTaskDN = ""; //分区广播接入号码[暂未使用] partitionControlRequest.zoneName = areaInfo.Areaname; //分区名称 partitionControlRequest.almLinkUdn1 = ""; //分区报警联动用户号码列表[暂未使用] partitionControlRequest.almLinkUdn2 = ""; //分区报警联动用户号码列表[暂未使用] partitionControlRequest.almLinkUdn3 = ""; //分区报警联动用户号码列表[暂未使用] partitionControlRequest.InfoState = areaInfo.InfoState; //调用RPC发送 MasProtocol masProtocol = new MasProtocol(SystemType.Broadcast, DirectionType.Down, ProtocolType.PartitionControlRequest); masProtocol.Protocol = partitionControlRequest; PartitionControlResponse result = RpcService.Send <PartitionControlResponse>(masProtocol, RequestType.BusinessRequest); if (result == null && result.retCode != "0") { Basic.Framework.Logging.LogHelper.Error("向网关同步广播分区信息失败!,分区名称:" + areaInfo.Areaname); return(false); } else { //将返回的分区标识更新到缓存及数据库 20180103 areaInfo.Areadescribe = result.zoneId; //更新数据库 var _area = ObjectConverter.Copy <AreaInfo, AreaModel>(areaInfo); _Repository.UpdateArea(_area); //更新区域缓存 20171128 AreaCacheUpdateRequest AreaCacheUpdateRequest = new AreaCacheUpdateRequest(); AreaCacheUpdateRequest.AreaInfo = areaInfo; _AreaCacheService.UpdateAreaCache(AreaCacheUpdateRequest); } } return(true); }
/// <summary> /// 分区管理 /// </summary> public static RpcResponse zoneManage(MasProtocol masProtocol) { PartitionControlRequest request = masProtocol.Deserialize <PartitionControlRequest>(); if (request == null) { return(null); } if (request.InfoState == InfoState.AddNew) { addZone(request); } if (request.InfoState == InfoState.Modified) { setZone(request); } if (request.InfoState == InfoState.Delete) { delZone(request); } return(null); }
/// <summary> /// 删除分区 /// </summary> /// <param name="masProtocol"></param> /// <returns></returns> public static RpcResponse delZone(PartitionControlRequest request) { PartitionControlResponse response = BroadCastControllerProxy.broadCastControllerProxy.delZone(request); return(RpcResponse.Response <PartitionControlResponse>(response)); }
/// <summary> /// 修改分区 /// </summary> /// <param name="request"></param> /// <returns></returns> public PartitionControlResponse setZone(PartitionControlRequest request) { var responseStr = HttpClientHelper.Post(Webapi + "/api/REST-API/setZone.do?accessToken=" + Token, JSONHelper.ToJSONString(request)); return(JSONHelper.ParseJSONString <PartitionControlResponse>(responseStr)); }