/// <summary> /// 批量添加 /// </summary> /// <param name="DeviceDefineRequest"></param> /// <returns></returns> public BasicResponse AddDeviceDefines(DeviceDefinesRequest DeviceDefineRequest) { BasicResponse Result = new BasicResponse(); List <Jc_DevInfo> items = DeviceDefineRequest.Jc_DevsInfo; List <Jc_DevInfo> Jc_DevCaches = new List <Jc_DevInfo>(); Jc_DevInfo olditem = null; DeviceDefineCacheGetAllRequest DeviceDefineCacheRequest = new DeviceDefineCacheGetAllRequest(); var result = _DeviceDefineCacheService.GetAllPointDefineCache(DeviceDefineCacheRequest); Jc_DevCaches = result.Data; foreach (Jc_DevInfo item in items) { olditem = Jc_DevCaches.Find(a => a.Devid == item.Devid); //增加重复判断 if (olditem != null) { //缓存中存在此测点 Result.Code = 1; Result.Message = "当前添加列表中的数据在数据库中已经存在!"; return(Result); } } //向网关同步数据 List <Jc_DevInfo> SendItemList = items; var resultSync = SynchronousDataToGateway(SendItemList); if (!resultSync) { Result.Code = 1; Result.Message = "向网关同步数据失败!"; return(Result); } TransactionsManager.BeginTransaction(() => { foreach (Jc_DevInfo item in items) { //保存数据库 var _Jc_Dev = ObjectConverter.Copy <Jc_DevInfo, Jc_DevModel>(item); var resultJc_Dev = _Repository.AddDeviceDefine(_Jc_Dev); } //添加到缓存 DeviceDefineCacheBatchAddRequest BacthAddPointDefineRequest = new DeviceDefineCacheBatchAddRequest(); BacthAddPointDefineRequest.DeviceDefineInfos = items; _DeviceDefineCacheService.BacthAddPointDefineCache(BacthAddPointDefineRequest); }); return(Result); }
public BasicResponse BacthAddPointDefineCache(DeviceDefineCacheBatchAddRequest deviceDefineCacheRequest) { DeviceDefineCache.DeviceDefineCahceInstance.AddItems(deviceDefineCacheRequest.DeviceDefineInfos); return(new BasicResponse()); }