示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
 public BasicResponse DeleteManualCrossControlCache(ManualCrossControlCacheDeleteRequest manualCrossControlCacheRequest)
 {
     ManualCrossControlCache.ManualCrossControlCahceInstance.DeleteItem(manualCrossControlCacheRequest.ManualCrossControlInfo);
     return(new BasicResponse());
 }