/// <summary> /// 批量添加\更新\删除接口 /// </summary> /// <param name="NetworkModuleRequest"></param> /// <returns></returns> public BasicResponse BatchOperationManualCrossControls(ManualCrossControlsRequest manualCrossControlRequest) { BasicResponse Result = new BasicResponse(); List <Jc_JcsdkzInfo> ManualCrossControlInfos = manualCrossControlRequest.ManualCrossControlInfos; //向网关同步数据 List <Jc_JcsdkzInfo> SendItemList = ManualCrossControlInfos; var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } TransactionsManager.BeginTransaction(() => { foreach (Jc_JcsdkzInfo item in ManualCrossControlInfos) { if (item.InfoState == InfoState.AddNew) { //数据库操作 var _jc_Jcsdkz = ObjectConverter.Copy <Jc_JcsdkzInfo, Jc_JcsdkzModel>(item); var resultjc_Jcsdkz = _Repository.AddManualCrossControl(_jc_Jcsdkz); //缓存操作 ManualCrossControlCacheAddRequest AddManualCrossControlCacheRequest = new ManualCrossControlCacheAddRequest(); AddManualCrossControlCacheRequest.ManualCrossControlInfo = item; _ManualCrossControlCacheService.AddManualCrossControlCache(AddManualCrossControlCacheRequest); } else if (item.InfoState == InfoState.Modified) { //数据库操作 var _jc_Jcsdkz = ObjectConverter.Copy <Jc_JcsdkzInfo, Jc_JcsdkzModel>(item); _Repository.UpdateManualCrossControl(_jc_Jcsdkz); //缓存操作 ManualCrossControlCacheUpdateRequest UpdateManualCrossControlCacheRequest = new ManualCrossControlCacheUpdateRequest(); UpdateManualCrossControlCacheRequest.ManualCrossControlInfo = item; _ManualCrossControlCacheService.UpdateManualCrossControlCache(UpdateManualCrossControlCacheRequest); } else if (item.InfoState == InfoState.Delete) { //数据库操作 _Repository.DeleteManualCrossControl(item.ID); //缓存操作 ManualCrossControlCacheDeleteRequest DeleteManualCrossControlCacheRequest = new ManualCrossControlCacheDeleteRequest(); DeleteManualCrossControlCacheRequest.ManualCrossControlInfo = item; _ManualCrossControlCacheService.DeleteManualCrossControlCache(DeleteManualCrossControlCacheRequest); } } }); //调用驱动重新加载控制信息 DriverManualCrossControlReLoadRequest reLoadRequest = new DriverManualCrossControlReLoadRequest(); _DriverManualCrossControlService.ReLoad(reLoadRequest); return(Result); }
/// <summary> /// 批量添加 /// </summary> /// <param name="ManualCrossControlRequest"></param> /// <returns></returns> public BasicResponse AddManualCrossControls(ManualCrossControlsRequest ManualCrossControlRequest) { BasicResponse Result = new BasicResponse(); List <Jc_JcsdkzInfo> items = ManualCrossControlRequest.ManualCrossControlInfos; List <Jc_JcsdkzInfo> ManualCrossControlCaches = new List <Jc_JcsdkzInfo>(); ManualCrossControlCacheGetAllRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetAllRequest(); var result = _ManualCrossControlCacheService.GetAllManualCrossControlCache(manualCrossControlCacheRequest); ManualCrossControlCaches = result.Data; foreach (Jc_JcsdkzInfo item in items) { Jc_JcsdkzInfo itemCache = ManualCrossControlCaches.Find(a => a.ID == item.ID); if (itemCache != null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前添加的手动/交叉控制信息已存在!"; return(Result); } } //向网关同步数据 List <Jc_JcsdkzInfo> SendItemList = items; var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } TransactionsManager.BeginTransaction(() => { foreach (Jc_JcsdkzInfo item in items) { //数据库操作 var _jc_Jcsdkz = ObjectConverter.Copy <Jc_JcsdkzInfo, Jc_JcsdkzModel>(item); var resultjc_Jcsdkz = _Repository.AddManualCrossControl(_jc_Jcsdkz); //缓存操作 ManualCrossControlCacheAddRequest AddManualCrossControlCacheRequest = new ManualCrossControlCacheAddRequest(); AddManualCrossControlCacheRequest.ManualCrossControlInfo = item; _ManualCrossControlCacheService.AddManualCrossControlCache(AddManualCrossControlCacheRequest); } }); //调用驱动重新加载控制信息 DriverManualCrossControlReLoadRequest reLoadRequest = new DriverManualCrossControlReLoadRequest(); _DriverManualCrossControlService.ReLoad(reLoadRequest); return(Result); }
/// <summary> /// 添加手动/交叉控制 /// </summary> /// <param name="ManualCrossControlRequest"></param> /// <returns></returns> public BasicResponse AddManualCrossControl(ManualCrossControlAddRequest ManualCrossControlRequest) { BasicResponse Result = new BasicResponse(); Jc_JcsdkzInfo item = ManualCrossControlRequest.ManualCrossControlInfo; ManualCrossControlCacheGetByKeyRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetByKeyRequest(); manualCrossControlCacheRequest.ManualCrosControlId = item.ID; var result = _ManualCrossControlCacheService.GetByKeyManualCrossControlCache(manualCrossControlCacheRequest); if (result.Data != null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前添加的手动/交叉控制信息已存在!"; return(Result); } //向网关同步数据 List <Jc_JcsdkzInfo> SendItemList = new List <Jc_JcsdkzInfo>(); SendItemList.Add(item); var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } //数据库操作 var _jc_Jcsdkz = ObjectConverter.Copy <Jc_JcsdkzInfo, Jc_JcsdkzModel>(ManualCrossControlRequest.ManualCrossControlInfo); var resultjc_Jcsdkz = _Repository.AddManualCrossControl(_jc_Jcsdkz); //缓存操作 ManualCrossControlCacheAddRequest AddManualCrossControlCacheRequest = new ManualCrossControlCacheAddRequest(); AddManualCrossControlCacheRequest.ManualCrossControlInfo = item; _ManualCrossControlCacheService.AddManualCrossControlCache(AddManualCrossControlCacheRequest); //调用驱动重新加载控制信息 DriverManualCrossControlReLoadRequest reLoadRequest = new DriverManualCrossControlReLoadRequest(); _DriverManualCrossControlService.ReLoad(reLoadRequest); return(Result); }
public BasicResponse AddManualCrossControlCache(ManualCrossControlCacheAddRequest manualCrossControlCacheRequest) { ManualCrossControlCache.ManualCrossControlCahceInstance.AddItem(manualCrossControlCacheRequest.ManualCrossControlInfo); return(new BasicResponse()); }