/// <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 DeleteManualCrossControls(ManualCrossControlsRequest ManualCrossControlRequest) { BasicResponse Result = new BasicResponse(); List <Jc_JcsdkzInfo> DeleteManualCrossControlInfos = ManualCrossControlRequest.ManualCrossControlInfos; ManualCrossControlCacheGetAllRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetAllRequest(); var result = _ManualCrossControlCacheService.GetAllManualCrossControlCache(manualCrossControlCacheRequest); List <Jc_JcsdkzInfo> DeleteManualCrossControlCaches = result.Data; if (DeleteManualCrossControlInfos.Count < 1) { Result.Code = 1; Result.Message = "当前删除列表中无数据!"; return(Result); } foreach (Jc_JcsdkzInfo item in DeleteManualCrossControlInfos) { Jc_JcsdkzInfo olditem = DeleteManualCrossControlCaches.Find(a => a.ID == item.ID); //增加重复判断 if (olditem == null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前删除列表中的数据不存在!"; return(Result); } } //向网关同步数据 List <Jc_JcsdkzInfo> SendItemList = DeleteManualCrossControlInfos; var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } TransactionsManager.BeginTransaction(() => { foreach (Jc_JcsdkzInfo item in DeleteManualCrossControlInfos) { //数据库操作 _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 DeleteManualCrossControl(ManualCrossControlDeleteRequest ManualCrossControlRequest) { BasicResponse Result = new BasicResponse(); ManualCrossControlCacheGetByKeyRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetByKeyRequest(); manualCrossControlCacheRequest.ManualCrosControlId = ManualCrossControlRequest.Id; var result = _ManualCrossControlCacheService.GetByKeyManualCrossControlCache(manualCrossControlCacheRequest); if (result.Data == null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前删除的手动/交叉控制不存在!"; return(Result); } //向网关同步数据 Jc_JcsdkzInfo item = result.Data; item.InfoState = InfoState.Delete; List <Jc_JcsdkzInfo> SendItemList = new List <Jc_JcsdkzInfo>(); SendItemList.Add(item); var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } //数据库操作 _Repository.DeleteManualCrossControl(ManualCrossControlRequest.Id); //缓存操作 ManualCrossControlCacheDeleteRequest DeleteManualCrossControlCacheRequest = new ManualCrossControlCacheDeleteRequest(); DeleteManualCrossControlCacheRequest.ManualCrossControlInfo = item; _ManualCrossControlCacheService.DeleteManualCrossControlCache(DeleteManualCrossControlCacheRequest); //调用驱动重新加载控制信息 DriverManualCrossControlReLoadRequest reLoadRequest = new DriverManualCrossControlReLoadRequest(); _DriverManualCrossControlService.ReLoad(reLoadRequest); return(Result); }
public BasicResponse DeleteManualCrossControlCache(ManualCrossControlCacheDeleteRequest manualCrossControlCacheRequest) { ManualCrossControlCache.ManualCrossControlCahceInstance.DeleteItem(manualCrossControlCacheRequest.ManualCrossControlInfo); return(new BasicResponse()); }