Пример #1
0
        /// <summary>
        /// 添加测点
        /// </summary>
        /// <param name="jc_Defrequest"></param>
        /// <returns></returns>
        public BasicResponse AddPointDefine(PointDefineAddRequest PointDefineRequest)
        {
            BasicResponse Result = new BasicResponse();
            Jc_DefInfo    item   = PointDefineRequest.PointDefineInfo;

            Jc_DefInfo olditem = null;

            B_DefCacheGetByConditionRequest bDefCacheRequest = new B_DefCacheGetByConditionRequest();

            bDefCacheRequest.predicate = a => a.Point == item.Point && a.Activity == "1";
            var result = _b_DefCacheService.Get(bDefCacheRequest);

            if (result.Data != null && result.Data.Count > 0)
            {
                if (result.Data[0].Activity == "1")
                {
                    olditem = result.Data[0];
                }
            }

            //增加重复判断
            if (result.Data != null && result.Data.Count > 0)
            { //缓存中存在此测点
                Result.Code    = 1;
                Result.Message = "当前添加的测点已存在!";
                return(Result);
            }


            //向网关同步数据
            List <Jc_DefInfo> SendItemList = new List <Jc_DefInfo>();

            SendItemList.Add(item);
            var resultSync = SynchronousDataToGateway(SendItemList);

            if (!resultSync)
            {
                Result.Code    = 1;
                Result.Message = "向网关同步数据失败!";
                return(Result);
            }

            //保存数据库
            var _jc_Def      = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(item);
            var resultjc_Def = _repository.AddDef(_jc_Def);

            //置初始化标记及休眠处理
            PointInitializes(item, olditem);

            //添加到缓存
            B_DefCacheInsertRequest addbDefCacheRequest = new B_DefCacheInsertRequest();

            addbDefCacheRequest.B_DefInfo = item;
            _b_DefCacheService.Insert(addbDefCacheRequest);

            return(Result);
        }
Пример #2
0
        /// <summary>
        /// 批量更新
        /// </summary>
        /// <param name="jc_Defrequest"></param>
        /// <returns></returns>
        public BasicResponse UpdatePointDefines(PointDefinesUpdateRequest PointDefineRequest)
        {
            BasicResponse     Result       = new BasicResponse();
            List <Jc_DefInfo> items        = PointDefineRequest.PointDefinesInfo;
            List <Jc_DefInfo> Jc_DefCaches = new List <Jc_DefInfo>();     //人员定位测点缓存
            Jc_DefInfo        olditem      = null;

            B_DefCacheGetByConditionRequest bDefCacheRequest = new B_DefCacheGetByConditionRequest();

            bDefCacheRequest.predicate = a => a.Activity == "1";
            var result = _b_DefCacheService.Get(bDefCacheRequest);

            Jc_DefCaches = result.Data;

            foreach (Jc_DefInfo item in items)
            {
                olditem = Jc_DefCaches.Find(a => a.Point == item.Point && a.Activity == "1");

                //增加重复判断
                if (olditem == null)
                { //缓存中存在此测点
                    Result.Code    = 1;
                    Result.Message = "当前更新列表中的数据在数据库中不存在!";
                    return(Result);
                }
            }
            //向网关同步数据
            List <Jc_DefInfo> SendItemList = items;
            var resultSync = SynchronousDataToGateway(SendItemList);

            if (!resultSync)
            {
                Result.Code    = 1;
                Result.Message = "向网关同步数据失败!";
                return(Result);
            }
            TransactionsManager.BeginTransaction(() =>
            {
                foreach (Jc_DefInfo item in items)
                {
                    olditem = Jc_DefCaches.Find(a => a.Point == item.Point && a.Activity == "1");
                    //保存数据库
                    var _jc_Def = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(item);
                    _repository.UpdateDef(_jc_Def);

                    //置下发初始化标记
                    PointInitializes(item, olditem);

                    //更新缓存
                    UpdatePointDefineCacheByProperty(item);
                }
            });

            return(Result);
        }
Пример #3
0
        /// <summary>
        /// 更新测点
        /// </summary>
        /// <param name="jc_Defrequest"></param>
        /// <returns></returns>
        public BasicResponse UpdatePointDefine(PointDefineUpdateRequest PointDefineRequest)
        {
            BasicResponse Result = new BasicResponse();

            Jc_DefInfo item    = PointDefineRequest.PointDefineInfo;
            Jc_DefInfo olditem = null;

            B_DefCacheGetByConditionRequest bDefCacheRequest = new B_DefCacheGetByConditionRequest();

            bDefCacheRequest.predicate = a => a.Point == item.Point && a.Activity == "1";
            var result = _b_DefCacheService.Get(bDefCacheRequest);

            if (result.Data != null && result.Data.Count > 0)
            {
                if (result.Data[0].Activity == "1")
                {
                    olditem = result.Data[0];
                }
            }

            //增加重复判断
            if (result.Data == null || result.Data.Count < 1)
            { //缓存中存在此测点
                Result.Code    = 1;
                Result.Message = "当前更新的测点不存在!";

                return(Result);
            }

            //向网关同步数据
            List <Jc_DefInfo> SendItemList = new List <Jc_DefInfo>();

            SendItemList.Add(item);
            var resultSync = SynchronousDataToGateway(SendItemList);

            if (!resultSync)
            {
                Result.Code    = 1;
                Result.Message = "向网关同步数据失败!";
                return(Result);
            }

            //保存数据库
            var _jc_Def = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(item);

            _repository.UpdateDef(_jc_Def);

            //置下发初始化标记
            PointInitializes(item, olditem);

            //更新缓存
            UpdatePointDefineCacheByProperty(item);

            return(Result);
        }
Пример #4
0
        public BasicResponse <Jc_DefInfo> GetPointDefineCacheByPointID(PointDefineGetByPointIDRequest PointDefineRequest)
        {
            BasicResponse <Jc_DefInfo> response = new BasicResponse <Jc_DefInfo>();

            B_DefCacheGetByConditionRequest rdergetrequest = new B_DefCacheGetByConditionRequest();

            rdergetrequest.predicate = r => r.PointID == PointDefineRequest.PointID;
            response.Data            = _b_DefCacheService.Get(rdergetrequest).Data.FirstOrDefault();

            return(response);
        }
Пример #5
0
        /// <summary>
        /// 根据区域ID获取设备
        /// </summary>
        /// <param name="PointDefineRequest"></param>
        /// <returns></returns>
        public BasicResponse <List <Jc_DefInfo> > GetPointDefineCacheByAreaID(PointDefineGetByAreaIDRequest PointDefineRequest)
        {
            BasicResponse <List <Jc_DefInfo> > response = new BasicResponse <List <Jc_DefInfo> >();

            B_DefCacheGetByConditionRequest rdergetrequest = new B_DefCacheGetByConditionRequest();

            rdergetrequest.predicate = r => r.Areaid == PointDefineRequest.AreaId;
            response.Data            = _b_DefCacheService.Get(rdergetrequest).Data;

            return(response);
        }