/// <summary>
        /// 批量添加
        /// </summary>
        /// <param name="NetworkModuleRequest"></param>
        /// <returns></returns>
        public BasicResponse AddNetworkModules(NetworkModulesRequest NetworkModuleRequest)
        {
            BasicResponse     Result = new BasicResponse();
            List <Jc_MacInfo> items  = NetworkModuleRequest.NetworkModulesInfo;
            List <Jc_MacInfo> NetworkModuleCaches = new List <Jc_MacInfo>();
            Jc_MacInfo        olditem             = null;

            NetworkModuleCacheGetAllRequest NetworkModuleCacheRequest = new NetworkModuleCacheGetAllRequest();
            var result = _NetworkModuleCacheService.GetAllNetworkModuleCache(NetworkModuleCacheRequest);

            NetworkModuleCaches = result.Data;

            foreach (Jc_MacInfo item in items)
            {
                olditem = NetworkModuleCaches.Find(a => a.MAC == item.MAC);
                //增加重复判断
                if (olditem != null)
                { //缓存中存在此测点
                    Result.Code    = 1;
                    Result.Message = "当前添加列表中的数据在数据库中已经存在!";
                    return(Result);
                }
            }

            //向网关同步数据
            List <Jc_MacInfo> SendItemList = items;
            var resultSync = SynchronousDataToGateway(SendItemList);

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

            TransactionsManager.BeginTransaction(() =>
            {
                foreach (Jc_MacInfo item in items)
                {
                    item.IsMemoryData = false;
                    //保存数据库
                    var _jc_Mac = ObjectConverter.Copy <Jc_MacInfo, Jc_MacModel>(item);
                    //保存数据库不存连接号  20170713
                    _jc_Mac.NetID    = 0;
                    var resultjc_Def = _Repository.AddNetworkModule(_jc_Mac);
                }


                //添加到缓存
                NetworkModuleCacheBatchAddRequest BatchAddNetworkModuleCacheRequest = new NetworkModuleCacheBatchAddRequest();
                BatchAddNetworkModuleCacheRequest.NetworkModuleInfos = items;
                _NetworkModuleCacheService.BacthAddNetworkModuleCache(BatchAddNetworkModuleCacheRequest);
            });

            return(Result);
        }
Beispiel #2
0
        /// <summary>
        /// 获取所有网络模块数据(JC_MAC)
        /// </summary>
        /// <returns></returns>
        public static List <Jc_MacInfo> GetAllMacItems()
        {
            List <Jc_MacInfo> macItems = new List <Jc_MacInfo>();

            var defResponse = networkModuleCacheService.GetAllNetworkModuleCache(new NetworkModuleCacheGetAllRequest());

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

            return(macItems);
        }
        /// <summary>
        /// 在缓存中获取所有交换机
        /// </summary>
        /// <returns></returns>
        public BasicResponse <List <Jc_MacInfo> > GetSwitchInformationInCache()
        {
            var response = new BasicResponse <List <Jc_MacInfo> >();

            try
            {
                var networkModuleCacheGetAllRequest  = new NetworkModuleCacheGetAllRequest();
                var networkModuleCacheGetAllResponse = networkModuleCacheService.GetAllNetworkModuleCache(networkModuleCacheGetAllRequest);
                if (networkModuleCacheGetAllResponse.Data != null)
                {
                    response.Data = networkModuleCacheGetAllResponse.Data;
                }
            }
            catch (Exception ex)
            {
                response.Code    = -100;
                response.Message = ex.Message;
                this.ThrowException("GetSwitchInformationInCache-在缓存中获取所有交换机", ex);;
            }

            return(response);
        }