/// <summary> /// 搜索网络模块,并更新缓存信息 /// </summary> /// <returns></returns> public BasicResponse <List <Jc_MacInfo> > SearchALLNetworkModuleAndAddCache(SearchNetworkModuleRequest request) { BasicResponse <List <Jc_MacInfo> > Result = new BasicResponse <List <Jc_MacInfo> >(); //查找现有网络模块 NetworkModuleCacheGetAllRequest networkModuleCacheRequest = new NetworkModuleCacheGetAllRequest(); var resultAllNetwork = _NetworkModuleCacheService.GetAllNetworkModuleCache(networkModuleCacheRequest); List <Jc_MacInfo> ALLNetworkModule = resultAllNetwork.Data; if (request.StationFind != 2)//=2表示全部搜索 { #region 搜索交换机/分站 Sys.DataCollection.Common.Protocols.SearchNetworkDeviceRequest searchNetworkDeviceRequest = new SearchNetworkDeviceRequest(); MasProtocol masProtocol = new MasProtocol(SystemType.Security, DirectionType.Down, ProtocolType.SearchNetworkDeviceRequest); masProtocol.Protocol = searchNetworkDeviceRequest; masProtocol.StationFind = request.StationFind; //调用RPC发送搜索网络模块命令,并接收回传的参数 var result = RpcService.Send <SearchNetworkDeviceResponse>(masProtocol, RequestType.DeviceUdpRequest);//todo RequestType类型增加3 List <Sys.DataCollection.Common.Protocols.NetworkDeviceItem> NetworkDeviceItems = null; if (result != null) { NetworkDeviceItems = result.NetworkDeviceItems; } if (NetworkDeviceItems == null) { Result.Code = 1; Result.Message = "未搜索到设备!"; return(Result); } //NetworkDeviceItems = result.NetworkDeviceItems; foreach (Sys.DataCollection.Common.Protocols.NetworkDeviceItem Network in NetworkDeviceItems) { if (ALLNetworkModule.FindAll(a => a.MAC == Network.Mac).Count == 0)//缓存不存在此对象,则添加到缓存中 { Jc_MacInfo NetworkModule = new Jc_MacInfo(); NetworkModule.ID = IdHelper.CreateLongId().ToString(); NetworkModule.MAC = Network.Mac; //网络模块MAC NetworkModule.IP = Network.Ip; //网络模块IP NetworkModule.Type = 0; NetworkModule.Istmcs = 0; NetworkModule.Wzid = "-1"; // 20170331 NetworkModule.Wz = null; NetworkModule.Bz2 = Network.SwitchMac; //网络模块所属交换机MAC NetworkModule.Bz3 = Network.AddressNumber.ToString(); //网络模块在交换机中的地址编码 NetworkModule.SubMask = Network.SubMask; NetworkModule.GatewayIp = Network.GatewayIp; if (Network.DeviceType == 3)//表示分站带网络模块 { NetworkModule.Bz5 = "1"; NetworkModule.Upflag = "0"; NetworkModule.BindStatinNumber = Network.StationAddress; } else { NetworkModule.Bz5 = "6";//默认支持6个分站 NetworkModule.Upflag = "1"; } NetworkModule.IsMemoryData = true;//搜索的时候把内存数据标记置为true 20170415 NetworkModule.InfoState = InfoState.AddNew; //调用更新到缓存中 NetworkModuleCacheAddRequest AddNetworkModuleCacheRequest = new NetworkModuleCacheAddRequest(); AddNetworkModuleCacheRequest.NetworkModuleInfo = NetworkModule; _NetworkModuleCacheService.AddNetworkModuleCache(AddNetworkModuleCacheRequest); } else//第一次搜索的时候,可能会获取不到IP,增加处理 20170627 { Jc_MacInfo NetworkModule = ALLNetworkModule.Find(a => a.MAC == Network.Mac); NetworkModule.MAC = Network.Mac; //网络模块MAC NetworkModule.IP = Network.Ip; //网络模块IP NetworkModule.Bz2 = Network.SwitchMac; //网络模块所属交换机MAC NetworkModule.Bz3 = Network.AddressNumber.ToString(); //网络模块在交换机中的地址编码 NetworkModule.SubMask = Network.SubMask; NetworkModule.GatewayIp = Network.GatewayIp; if (Network.DeviceType == 3)//表示分站带网络模块 { NetworkModule.Bz5 = "1"; NetworkModule.Upflag = "0"; NetworkModule.BindStatinNumber = Network.StationAddress; } else { NetworkModule.Bz5 = "6";//默认支持6个分站 NetworkModule.Upflag = "1"; } //调用更新到缓存中 NetworkModuleCacheUpdateRequest updateNetworkModuleCacheRequest = new NetworkModuleCacheUpdateRequest(); updateNetworkModuleCacheRequest.NetworkModuleInfo = NetworkModule; _NetworkModuleCacheService.UpdateNetworkModuleCahce(updateNetworkModuleCacheRequest); } } #endregion } else { #region 搜索交换机+分站 Sys.DataCollection.Common.Protocols.SearchNetworkDeviceRequest searchNetworkDeviceRequest = new SearchNetworkDeviceRequest(); MasProtocol masProtocol = new MasProtocol(SystemType.Security, DirectionType.Down, ProtocolType.SearchNetworkDeviceRequest); masProtocol.Protocol = searchNetworkDeviceRequest; masProtocol.StationFind = 0; //调用RPC发送搜索网络模块命令,并接收回传的参数 var result = RpcService.Send <SearchNetworkDeviceResponse>(masProtocol, RequestType.DeviceUdpRequest);//todo RequestType类型增加3 List <NetworkDeviceItem> NetworkDeviceItems = new List <NetworkDeviceItem>(); if (result != null) { NetworkDeviceItems = result.NetworkDeviceItems; } Sys.DataCollection.Common.Protocols.SearchNetworkDeviceRequest searchNetworkDeviceRequest1 = new SearchNetworkDeviceRequest(); MasProtocol masProtocol1 = new MasProtocol(SystemType.Security, DirectionType.Down, ProtocolType.SearchNetworkDeviceRequest); masProtocol1.Protocol = searchNetworkDeviceRequest1; masProtocol1.StationFind = 1; //调用RPC发送搜索网络模块命令,并接收回传的参数 var result1 = RpcService.Send <SearchNetworkDeviceResponse>(masProtocol, RequestType.DeviceUdpRequest);//todo RequestType类型增加3 if (result1 != null) { NetworkDeviceItems.AddRange(result1.NetworkDeviceItems); } if (NetworkDeviceItems.Count < 1) { Result.Code = 1; Result.Message = "未搜索到设备!"; return(Result); } //NetworkDeviceItems = result.NetworkDeviceItems; foreach (Sys.DataCollection.Common.Protocols.NetworkDeviceItem Network in NetworkDeviceItems) { if (ALLNetworkModule.FindAll(a => a.MAC == Network.Mac).Count == 0)//缓存不存在此对象,则添加到缓存中 { Jc_MacInfo NetworkModule = new Jc_MacInfo(); NetworkModule.ID = IdHelper.CreateLongId().ToString(); NetworkModule.MAC = Network.Mac; //网络模块MAC NetworkModule.IP = Network.Ip; //网络模块IP NetworkModule.Type = 0; NetworkModule.Istmcs = 0; NetworkModule.Wzid = "-1"; // 20170331 NetworkModule.Wz = null; NetworkModule.Bz2 = Network.SwitchMac; //网络模块所属交换机MAC NetworkModule.Bz3 = Network.AddressNumber.ToString(); //网络模块在交换机中的地址编码 NetworkModule.SubMask = Network.SubMask; NetworkModule.GatewayIp = Network.GatewayIp; if (Network.DeviceType == 3)//表示分站带网络模块 { NetworkModule.Bz5 = "1"; NetworkModule.Upflag = "0"; NetworkModule.BindStatinNumber = Network.StationAddress; } else { NetworkModule.Bz5 = "6";//默认支持6个分站 NetworkModule.Upflag = "1"; } NetworkModule.IsMemoryData = true;//搜索的时候把内存数据标记置为true 20170415 NetworkModule.InfoState = InfoState.AddNew; //调用更新到缓存中 NetworkModuleCacheAddRequest AddNetworkModuleCacheRequest = new NetworkModuleCacheAddRequest(); AddNetworkModuleCacheRequest.NetworkModuleInfo = NetworkModule; _NetworkModuleCacheService.AddNetworkModuleCache(AddNetworkModuleCacheRequest); } else//第一次搜索的时候,可能会获取不到IP,增加处理 20170627 { Jc_MacInfo NetworkModule = ALLNetworkModule.Find(a => a.MAC == Network.Mac); NetworkModule.MAC = Network.Mac; //网络模块MAC NetworkModule.IP = Network.Ip; //网络模块IP NetworkModule.Bz2 = Network.SwitchMac; //网络模块所属交换机MAC NetworkModule.Bz3 = Network.AddressNumber.ToString(); //网络模块在交换机中的地址编码 NetworkModule.SubMask = Network.SubMask; NetworkModule.GatewayIp = Network.GatewayIp; if (Network.DeviceType == 3)//表示分站带网络模块 { NetworkModule.Bz5 = "1"; NetworkModule.Upflag = "0"; NetworkModule.BindStatinNumber = Network.StationAddress; } else { NetworkModule.Bz5 = "6";//默认支持6个分站 NetworkModule.Upflag = "1"; } //调用更新到缓存中 NetworkModuleCacheUpdateRequest updateNetworkModuleCacheRequest = new NetworkModuleCacheUpdateRequest(); updateNetworkModuleCacheRequest.NetworkModuleInfo = NetworkModule; _NetworkModuleCacheService.UpdateNetworkModuleCahce(updateNetworkModuleCacheRequest); } } #endregion } //查找所有缓存包括后面增加的内容 NetworkModuleCacheGetAllRequest networkModuleNewCacheRequest = new NetworkModuleCacheGetAllRequest(); var resultAllNetworkNew = _NetworkModuleCacheService.GetAllNetworkModuleCache(networkModuleNewCacheRequest); Result.Data = resultAllNetworkNew.Data; return(Result); }
public BasicResponse <List <Jc_MacInfo> > SearchALLNetworkModuleAndAddCache(SearchNetworkModuleRequest request) { return(_NetworkModuleService.SearchALLNetworkModuleAndAddCache(request)); }
public BasicResponse <List <Jc_MacInfo> > SearchALLNetworkModuleAndAddCache(SearchNetworkModuleRequest request) { var responseStr = HttpClientHelper.Post(Webapi + "/v1/NetworkModule/SearchALLNetworkModuleAndAddCache?token=" + Token, JSONHelper.ToJSONString(request)); return(JSONHelper.ParseJSONString <BasicResponse <List <Jc_MacInfo> > >(responseStr)); }