Exemple #1
0
        /// <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 <List <Jc_DevInfo> > GetMasterEquTypeInfoByAssId(LongIdRequest request)
        {
            var req3             = new EmergencyLinkageConfigCacheGetAllRequest();
            var res3             = _sysEmergencyLinkageCacheService.GetAllSysEmergencyLinkageCache(req3);
            var linkageInfo      = res3.Data.FirstOrDefault(a => a.MasterDevTypeAssId == request.Id.ToString());
            var masterDevTypeAss = linkageInfo == null
                ? new List <EmergencyLinkageMasterDevTypeAssInfo>()
                : linkageInfo.MasterDevTypes;

            var req = new DeviceDefineCacheGetAllRequest();
            var res = _deviceDefineCacheService.GetAllPointDefineCache(req);

            if (res.Code != 100)
            {
                throw new Exception(res.Message);
            }
            var allEquType = res.Data;
            //var allMasterDevTypeAss = _emergencyLinkageMasterDevTypeAssRepository.Datas.ToList();

            var res2 = from a in masterDevTypeAss
                       join b in allEquType on a.DevId equals b.Devid into temp
                       from ab in temp.DefaultIfEmpty()
                       //where a.MasterDevTypeAssId == request.Id.ToString()
                       select ab;

            var retLis = res2.ToList();
            var ret    = new BasicResponse <List <Jc_DevInfo> >()
            {
                Data = retLis
            };

            return(ret);
        }
Exemple #3
0
        /// <summary>
        /// 获取所有设备类型dev数据
        /// </summary>
        /// <returns></returns>
        public static List <Jc_DevInfo> GetAllDevItems()
        {
            List <Jc_DevInfo> devItems = new List <Jc_DevInfo>();

            var defResponse = deviceDefineCacheService.GetAllPointDefineCache(new DeviceDefineCacheGetAllRequest());

            if (defResponse.IsSuccess)
            {
                devItems = defResponse.Data;
            }

            return(devItems);
        }