Beispiel #1
0
        /// <summary>
        /// 业务类请求处理
        /// </summary>
        /// <param name="rpcRequest"></param>
        /// <returns></returns>
        private static RpcResponse HandleBusinessRequest(RpcRequest rpcRequest)
        {
            var masProtocol = rpcRequest.ToRequest <GatewayRpcRequest>().MasProtocol;

            //todo 处理业务
            if (masProtocol.ProtocolType == ProtocolType.QueryCacheDataRequest) //网关请求获取缓存信息
            {
                QueryCacheDataResponse queryCacheDataResponse = QueryCacheDataToGateway.QueryServiceCacheDataToGateway();
                return(RpcResponse.Response <QueryCacheDataResponse>(queryCacheDataResponse));
            }

            return(RpcResponse.Response <GatewayRpcResponse>(new GatewayRpcResponse()));
        }
        /// <summary>
        /// 查询服务接口端缓存信息,并同步到网关
        /// </summary>
        /// <returns></returns>
        public static QueryCacheDataResponse QueryServiceCacheDataToGateway()
        {
            QueryCacheDataResponse queryCacheDataResponse = new QueryCacheDataResponse();
            //获取定义、设备类型、网络模块、手动/交叉控制缓存信息
            List <Jc_DefInfo>    PointDefineCacheList        = _PointDefineService.GetAllPointDefineCache().Data.FindAll(a => a.Upflag != "1");//修改,不向网关同步由子系统同步的数据  20180131
            List <Jc_DevInfo>    DeviceDefineCacheList       = _DeviceDefineService.GetAllDeviceDefineCache().Data;
            List <Jc_MacInfo>    NetworkModuleCacheList      = _NetworkModuleService.GetAllNetworkModuleCache().Data;
            List <Jc_JcsdkzInfo> ManualCrossControlCacheList = _ManualCrossControlService.GetAllManualCrossControl().Data;
            //数据转换
            List <DeviceInfo>              GatewayPointDefineCacheList        = Basic.Framework.Common.ObjectConverter.CopyList <Jc_DefInfo, DeviceInfo>(PointDefineCacheList).ToList();
            List <DeviceTypeInfo>          GatewayDeviceDefineCacheList       = Basic.Framework.Common.ObjectConverter.CopyList <Jc_DevInfo, DeviceTypeInfo>(DeviceDefineCacheList).ToList();
            List <NetworkDeviceInfo>       GatewayNetworkModuleCacheList      = Basic.Framework.Common.ObjectConverter.CopyList <Jc_MacInfo, NetworkDeviceInfo>(NetworkModuleCacheList).ToList();
            List <DeviceAcrossControlInfo> GatewayManualCrossControlCacheList = Basic.Framework.Common.ObjectConverter.CopyList <Jc_JcsdkzInfo, DeviceAcrossControlInfo>(ManualCrossControlCacheList).ToList();

            //key赋值
            foreach (DeviceInfo PointDefine in GatewayPointDefineCacheList)
            {
                PointDefine.UniqueKey = PointDefine.Point;
            }
            foreach (DeviceTypeInfo DeviceDefine in GatewayDeviceDefineCacheList)
            {
                DeviceDefine.UniqueKey = DeviceDefine.Devid;
            }
            foreach (NetworkDeviceInfo NetworkModule in GatewayNetworkModuleCacheList)
            {
                NetworkModule.UniqueKey = NetworkModule.MAC;
            }
            foreach (DeviceAcrossControlInfo ManualCrossControl in GatewayManualCrossControlCacheList)
            {
                ManualCrossControl.UniqueKey = ManualCrossControl.ID;
            }

            queryCacheDataResponse.DeviceList              = GatewayPointDefineCacheList;
            queryCacheDataResponse.DeviceTypeList          = GatewayDeviceDefineCacheList;
            queryCacheDataResponse.NetworkDeviceList       = GatewayNetworkModuleCacheList;
            queryCacheDataResponse.DeviceAcrossControlList = GatewayManualCrossControlCacheList;

            return(queryCacheDataResponse);
        }