/// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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));
        }