public BasicResponse <Jc_MacInfo> GetNetworkModuleCacheByKey(NetworkModuleCacheGetByKeyRequest networkModuleCacheRequest) { var networkModuleCache = NetworkModuleCache.NetworModuleCahceInstance.Query(networkModule => networkModule.MAC == networkModuleCacheRequest.Mac).FirstOrDefault(); var networkModuleCacheResponse = new BasicResponse <Jc_MacInfo>(); networkModuleCacheResponse.Data = networkModuleCache; return(networkModuleCacheResponse); }
/// <summary> /// 删除网络模块 /// </summary> /// <param name="NetworkModuleRequest"></param> /// <returns></returns> public BasicResponse DeleteNetworkModule(NetworkModuleDeleteByMacRequest NetworkModuleRequest) { BasicResponse Result = new BasicResponse(); //重复判断 NetworkModuleCacheGetByKeyRequest networkModuleCacheRequest = new NetworkModuleCacheGetByKeyRequest(); networkModuleCacheRequest.Mac = NetworkModuleRequest.Mac; var result = _NetworkModuleCacheService.GetNetworkModuleCacheByKey(networkModuleCacheRequest); Jc_MacInfo OldItem = result.Data; if (result.Data == null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前删除的网络模块不存在!"; return(Result); } OldItem.InfoState = InfoState.Delete; //保存数据库 if (!OldItem.IsMemoryData) { //向网关同步数据 List <Jc_MacInfo> SendItemList = new List <Jc_MacInfo>(); SendItemList.Add(OldItem); var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } _Repository.DeleteNetworkModule(OldItem.ID); } //更新缓存 NetworkModuleCacheDeleteRequest DeleteNetworkModuleCacheRequest = new NetworkModuleCacheDeleteRequest(); DeleteNetworkModuleCacheRequest.NetworkModuleInfo = OldItem; _NetworkModuleCacheService.DeleteNetworkModuleCache(DeleteNetworkModuleCacheRequest); return(Result); }
/// <summary> /// 添加网络模块 /// </summary> /// <param name="NetworkModuleRequest"></param> /// <returns></returns> public BasicResponse AddNetworkModule(NetworkModuleAddRequest NetworkModuleRequest) { BasicResponse Result = new BasicResponse(); Jc_MacInfo item = NetworkModuleRequest.NetworkModuleInfo; //重复判断 NetworkModuleCacheGetByKeyRequest networkModuleCacheRequest = new NetworkModuleCacheGetByKeyRequest(); networkModuleCacheRequest.Mac = item.MAC; var result = _NetworkModuleCacheService.GetNetworkModuleCacheByKey(networkModuleCacheRequest); Jc_MacInfo OldItem = result.Data; if (result.Data != null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前添加的网络模块已存在!"; return(Result); } //重置内存状态标记,因为搜索的时候,只保存了内存 20170410 //if (OldItem != null) //{ // if (OldItem.IsMemoryData)//如果内存中存在数据,则重置添加、修改标记 20170415 // { // if (OldItem.InfoState == InfoState.AddNew) // { // if (item.InfoState == InfoState.Modified) // { // item.InfoState = InfoState.AddNew; // } // } // if (OldItem.InfoState == InfoState.Delete) // { // if (item.InfoState == InfoState.AddNew) // { // item.InfoState = InfoState.Modified; // } // } // item.IsMemoryData = false;//置完标记后,将内存数据变成非内存数据标记 20170415 // } //} item.IsMemoryData = false;//置完标记后,将内存数据变成非内存数据标记 20170415 //向网关同步数据 List <Jc_MacInfo> SendItemList = new List <Jc_MacInfo>(); SendItemList.Add(item); var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } //保存数据库 var _jc_Mac = ObjectConverter.Copy <Jc_MacInfo, Jc_MacModel>(item); //保存数据库不存连接号 20170713 _jc_Mac.NetID = 0; var resultjc_Mac = _Repository.AddNetworkModule(_jc_Mac); //更新缓存 NetworkModuleCacheAddRequest AddNetworkModuleCacheRequest = new NetworkModuleCacheAddRequest(); AddNetworkModuleCacheRequest.NetworkModuleInfo = item; _NetworkModuleCacheService.AddNetworkModuleCache(AddNetworkModuleCacheRequest); return(Result); }
/// <summary> /// 更新网络模块 /// </summary> /// <param name="NetworkModuleRequest"></param> /// <returns></returns> public BasicResponse UpdateNetworkModule(NetworkModuleUpdateRequest NetworkModuleRequest) { BasicResponse Result = new BasicResponse(); Jc_MacInfo item = NetworkModuleRequest.NetworkModuleInfo; //重复判断 NetworkModuleCacheGetByKeyRequest networkModuleCacheRequest = new NetworkModuleCacheGetByKeyRequest(); networkModuleCacheRequest.Mac = item.MAC; var result = _NetworkModuleCacheService.GetNetworkModuleCacheByKey(networkModuleCacheRequest); Jc_MacInfo OldItem = result.Data; if (result.Data == null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前更新的网络模块不存在!"; return(Result); } //重置内存状态标记,因为搜索的时候,只保存了内存 20170410 if (OldItem != null) { if (OldItem.IsMemoryData)//如果内存中存在数据,则重置添加、修改标记 20170415 { if (OldItem.InfoState == InfoState.AddNew) { if (item.InfoState == InfoState.Modified) { item.InfoState = InfoState.AddNew; } } if (OldItem.InfoState == InfoState.Delete) { if (item.InfoState == InfoState.AddNew) { item.InfoState = InfoState.Modified; } } item.IsMemoryData = false;//置完标记后,将内存数据变成非内存数据标记 20170415 } } //item.IsMemoryData = false;//置完标记后,将内存数据变成非内存数据标记 20170415 if (item.InfoState == InfoState.AddNew) { //向网关同步数据 List <Jc_MacInfo> SendItemList = new List <Jc_MacInfo>(); SendItemList.Add(item); var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } //保存数据库 var _jc_Mac = ObjectConverter.Copy <Jc_MacInfo, Jc_MacModel>(item); _Repository.AddNetworkModule(_jc_Mac); } else { //向网关同步数据 List <Jc_MacInfo> SendItemList = new List <Jc_MacInfo>(); SendItemList.Add(item); var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } //保存数据库 var _jc_Mac = ObjectConverter.Copy <Jc_MacInfo, Jc_MacModel>(item); _Repository.UpdateNetworkModule(_jc_Mac); } //更新缓存 UpdateNetworkModuleCacheByProperty(item); return(Result); }