/// <summary>
        ///添加安装位置
        /// </summary>
        /// <param name="PositionRequest"></param>
        /// <returns></returns>
        public BasicResponse AddPosition(PositionAddRequest PositionRequest)
        {
            BasicResponse Result  = new BasicResponse();
            Jc_WzInfo     item    = PositionRequest.PositionInfo;
            Jc_WzInfo     olditem = null;

            PositionCacheGetByKeyRequest positionCacheRequest = new PositionCacheGetByKeyRequest();

            positionCacheRequest.PositionId = item.ID;
            var result = _PositionCacheService.GetPositionCacheByKey(positionCacheRequest);

            olditem = result.Data;

            //增加重复判断
            if (result.Data != null)
            { //缓存中存在此测点
                Result.Code    = 1;
                Result.Message = "当前添加的安装位置已存在!";
                return(Result);
            }
            //保存数据库
            var _jc_Wz      = ObjectConverter.Copy <Jc_WzInfo, Jc_WzModel>(PositionRequest.PositionInfo);
            var resultjc_Wz = _Repository.AddPosition(_jc_Wz);

            //保存缓存
            PositionCacheAddRequest AddPositionCacheRequest = new PositionCacheAddRequest();

            AddPositionCacheRequest.PositionInfo = item;
            _PositionCacheService.AddPositionCache(AddPositionCacheRequest);

            return(Result);
        }
        public BasicResponse DeletePosition(PositionDeleteRequest PositionRequest)
        {
            BasicResponse Result = new BasicResponse();
            Jc_WzInfo     item   = new Jc_WzInfo();

            PositionCacheGetByKeyRequest positionCacheRequest = new PositionCacheGetByKeyRequest();

            positionCacheRequest.PositionId = PositionRequest.Id;
            var result = _PositionCacheService.GetPositionCacheByKey(positionCacheRequest);

            item = result.Data;
            //增加判断
            if (result.Data == null)
            { //缓存中存在此测点
                Result.Code    = 1;
                Result.Message = "当前删除的安装位置不存在!";
                return(Result);
            }

            //数据库操作
            _Repository.DeletePosition(item.WzID);

            //保存缓存
            PositionCacheDeleteRequest positionDeleteCacheRequest = new PositionCacheDeleteRequest();

            positionDeleteCacheRequest.PositionInfo = item;
            _PositionCacheService.DeletePositionCache(positionDeleteCacheRequest);

            return(Result);
        }
        /// <summary>
        /// 安装位置更新
        /// </summary>
        /// <param name="PositionRequest"></param>
        /// <returns></returns>
        public BasicResponse UpdatePosition(PositionUpdateRequest PositionRequest)
        {
            BasicResponse Result = new BasicResponse();
            Jc_WzInfo     item   = PositionRequest.PositionInfo;

            PositionCacheGetByKeyRequest positionCacheRequest = new PositionCacheGetByKeyRequest();

            positionCacheRequest.PositionId = item.WzID;
            var result = _PositionCacheService.GetPositionCacheByKey(positionCacheRequest);

            //增加判断
            if (result.Data == null)
            { //缓存中存在此测点
                Result.Code    = 1;
                Result.Message = "当前更新的安装位置不存在!";
                return(Result);
            }
            //保存数据库
            var _jc_Wz = ObjectConverter.Copy <Jc_WzInfo, Jc_WzModel>(PositionRequest.PositionInfo);

            _Repository.UpdatePosition(_jc_Wz);
            //保存缓存
            PositionCacheUpdateRequest UpdatePositionCacheRequest = new PositionCacheUpdateRequest();

            UpdatePositionCacheRequest.PositionInfo = item;
            _PositionCacheService.UpdatePositionCache(UpdatePositionCacheRequest);

            return(Result);
        }
        /// <summary>
        /// 批量添加
        /// </summary>
        /// <param name="PositionRequest"></param>
        /// <returns></returns>
        public BasicResponse AddPositions(PositionsRequest PositionRequest)
        {
            BasicResponse    Result         = new BasicResponse();
            List <Jc_WzInfo> items          = PositionRequest.PositionsInfo;
            List <Jc_WzInfo> PositionCaches = new List <Jc_WzInfo>();
            Jc_WzInfo        olditem        = null;

            PositionCacheGetAllRequest positionCacheRequest = new PositionCacheGetAllRequest();
            var result = _PositionCacheService.GetAllPositongCache(positionCacheRequest);

            PositionCaches = result.Data;

            foreach (Jc_WzInfo item in items)
            {
                olditem = PositionCaches.Find(a => a.WzID == item.WzID);
                //增加重复判断
                if (result.Data != null)
                { //缓存中存在此测点
                    Result.Code    = 1;
                    Result.Message = "当前添加的安装位置已存在!";
                    return(Result);
                }
            }


            TransactionsManager.BeginTransaction(() =>
            {
                foreach (Jc_WzInfo item in items)
                {
                    //保存数据库
                    var _jc_Wz      = ObjectConverter.Copy <Jc_WzInfo, Jc_WzModel>(item);
                    var resultjc_Wz = _Repository.AddPosition(_jc_Wz);
                }

                //保存缓存
                PositionCacheBatchAddRequest BatchAddPositionCacheRequest = new PositionCacheBatchAddRequest();
                BatchAddPositionCacheRequest.PositionInfos = items;
                _PositionCacheService.BatchAddPositionCache(BatchAddPositionCacheRequest);
            });

            return(Result);
        }
Esempio n. 5
0
        /// <summary>
        /// 获取位置ID,如果不存在则添加位置
        /// </summary>
        /// <param name="psition"></param>
        /// <returns></returns>
        private string GetPositionId(string position)
        {
            if (string.IsNullOrEmpty(position))
            {
                return("0");
            }

            string wzid         = string.Empty;
            var    positioninfo = _positionCacheService.GetPositionCache(new PositionCacheGetByConditionRequest {
                Predicate = w => w.Wz == position
            }).Data.FirstOrDefault();

            if (positioninfo == null)
            {
                Jc_WzInfo wzinfo = new Jc_WzInfo();

                wzinfo.ID = IdHelper.CreateLongId().ToString();
                var maxid = _positionService.GetMaxPositionId().Data;
                wzid        = (maxid + 1).ToString();
                wzinfo.WzID = (maxid + 1).ToString();
                //var id = IdHelper.CreateLongId().ToString();
                //wzid = id;
                //wzinfo.WzID = id;
                wzinfo.Wz         = position;
                wzinfo.CreateTime = DateTime.Now;

                _positionService.AddPosition(new Request.Position.PositionAddRequest {
                    PositionInfo = wzinfo
                });
            }
            else
            {
                wzid = positioninfo.WzID;
            }

            return(wzid);
        }
Esempio n. 6
0
        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                if (!WZverify())
                {
                    return;
                }

                Jc_WzInfo tempWZ = new Jc_WzInfo();
                tempWZ.WzID = CtxbWZID.Text;
                tempWZ.Wz   = CtxbWZNAME.Text;

                if (null == _WZDTO)
                {
                    //增加安装位置重复检测  20170908
                    Jc_WzInfo tempWz = null;
                    tempWz = Model.WZServiceModel.QueryWZbyWZCache(CtxbWZNAME.Text);
                    if (null != tempWz)
                    {
                        XtraMessageBox.Show("当前添加的安装位置已经存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    //新增
                    tempWZ.ID         = Basic.Framework.Common.IdHelper.CreateLongId().ToString();
                    tempWZ.CreateTime = DateTime.Now;// 20170331
                    tempWZ.InfoState  = InfoState.AddNew;
                    try
                    {
                        Model.WZServiceModel.AddJC_WZCache(tempWZ);
                    }
                    catch (Exception ex)
                    {
                        XtraMessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
                else
                {
                    //更新
                    if (_WZDTO != tempWZ)
                    {
                        tempWZ.ID         = _WZDTO.ID;
                        tempWZ.CreateTime = _WZDTO.CreateTime;
                        tempWZ.InfoState  = InfoState.Modified;
                        try
                        {
                            Model.WZServiceModel.UpdateJC_WZCache(tempWZ);
                        }
                        catch (Exception ex)
                        {
                            XtraMessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                        #region 更新Point和MAC
                        List <Jc_DefInfo> tempPoints   = Model.DEFServiceModel.QueryAllCache();
                        List <Jc_DefInfo> UpdatePoints = new List <Jc_DefInfo>();
                        if (null != tempPoints)
                        {
                            for (int i = 0; i < tempPoints.Count; i++)
                            {
                                if (tempPoints[i].Wzid == tempWZ.WzID)
                                {
                                    tempPoints[i].Wz        = tempWZ.Wz;
                                    tempPoints[i].InfoState = InfoState.Modified;
                                    UpdatePoints.Add(tempPoints[i]);
                                }
                            }
                            if (UpdatePoints.Count > 0)
                            {
                                try
                                {
                                    Model.DEFServiceModel.UpdateDEFsCache(UpdatePoints);//将相应的测点告知服务端
                                }
                                catch (Exception ex)
                                {
                                    XtraMessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    return;
                                }
                            }
                        }

                        List <Jc_MacInfo> tempMACs   = Model.MACServiceModel.QueryAllCache();
                        List <Jc_MacInfo> UpdateMACs = new List <Jc_MacInfo>();
                        if (null != tempMACs)
                        {
                            for (int i = 0; i < tempMACs.Count; i++)
                            {
                                if (tempMACs[i].Wzid == tempWZ.WzID)
                                {
                                    tempMACs[i].Wz        = tempWZ.Wz;
                                    tempMACs[i].InfoState = InfoState.Modified;
                                    UpdateMACs.Add(tempMACs[i]);
                                }
                            }

                            if (UpdateMACs.Count > 0)
                            {
                                try
                                {
                                    Model.MACServiceModel.UpdateMACsCache(UpdateMACs);//将相应的MAC告知服务端
                                }
                                catch (Exception ex)
                                {
                                    XtraMessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    return;
                                }
                            }
                        }
                        #endregion
                    }
                }
                //加延时  20170721
                Thread.Sleep(1000);

                this.Close();
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex.ToString());
            }
        }