예제 #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 AddManualCrossControls(ManualCrossControlsRequest ManualCrossControlRequest)
        {
            BasicResponse        Result = new BasicResponse();
            List <Jc_JcsdkzInfo> items  = ManualCrossControlRequest.ManualCrossControlInfos;
            List <Jc_JcsdkzInfo> ManualCrossControlCaches = new List <Jc_JcsdkzInfo>();

            ManualCrossControlCacheGetAllRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetAllRequest();
            var result = _ManualCrossControlCacheService.GetAllManualCrossControlCache(manualCrossControlCacheRequest);

            ManualCrossControlCaches = result.Data;

            foreach (Jc_JcsdkzInfo item in items)
            {
                Jc_JcsdkzInfo itemCache = ManualCrossControlCaches.Find(a => a.ID == item.ID);
                if (itemCache != null)
                {
                    //缓存中存在此测点
                    Result.Code    = 1;
                    Result.Message = "当前添加的手动/交叉控制信息已存在!";
                    return(Result);
                }
            }
            //向网关同步数据
            List <Jc_JcsdkzInfo> SendItemList = items;
            var resultSync = SynchronousDataToGateway(SendItemList);

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

            TransactionsManager.BeginTransaction(() =>
            {
                foreach (Jc_JcsdkzInfo item in items)
                {
                    //数据库操作
                    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);
                }
            });

            //调用驱动重新加载控制信息
            DriverManualCrossControlReLoadRequest reLoadRequest = new DriverManualCrossControlReLoadRequest();

            _DriverManualCrossControlService.ReLoad(reLoadRequest);

            return(Result);
        }
예제 #3
0
        /// <summary>
        /// 添加手动/交叉控制
        /// </summary>
        /// <param name="ManualCrossControlRequest"></param>
        /// <returns></returns>
        public BasicResponse AddManualCrossControl(ManualCrossControlAddRequest ManualCrossControlRequest)
        {
            BasicResponse Result = new BasicResponse();
            Jc_JcsdkzInfo item   = ManualCrossControlRequest.ManualCrossControlInfo;

            ManualCrossControlCacheGetByKeyRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetByKeyRequest();

            manualCrossControlCacheRequest.ManualCrosControlId = item.ID;
            var result = _ManualCrossControlCacheService.GetByKeyManualCrossControlCache(manualCrossControlCacheRequest);

            if (result.Data != null)
            {
                //缓存中存在此测点
                Result.Code    = 1;
                Result.Message = "当前添加的手动/交叉控制信息已存在!";
                return(Result);
            }
            //向网关同步数据
            List <Jc_JcsdkzInfo> SendItemList = new List <Jc_JcsdkzInfo>();

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

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

            //数据库操作
            var _jc_Jcsdkz      = ObjectConverter.Copy <Jc_JcsdkzInfo, Jc_JcsdkzModel>(ManualCrossControlRequest.ManualCrossControlInfo);
            var resultjc_Jcsdkz = _Repository.AddManualCrossControl(_jc_Jcsdkz);

            //缓存操作
            ManualCrossControlCacheAddRequest AddManualCrossControlCacheRequest = new ManualCrossControlCacheAddRequest();

            AddManualCrossControlCacheRequest.ManualCrossControlInfo = item;
            _ManualCrossControlCacheService.AddManualCrossControlCache(AddManualCrossControlCacheRequest);

            //调用驱动重新加载控制信息
            DriverManualCrossControlReLoadRequest reLoadRequest = new DriverManualCrossControlReLoadRequest();

            _DriverManualCrossControlService.ReLoad(reLoadRequest);

            return(Result);
        }
예제 #4
0
 public BasicResponse AddManualCrossControlCache(ManualCrossControlCacheAddRequest manualCrossControlCacheRequest)
 {
     ManualCrossControlCache.ManualCrossControlCahceInstance.AddItem(manualCrossControlCacheRequest.ManualCrossControlInfo);
     return(new BasicResponse());
 }