Beispiel #1
0
        private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            int selectedHandle;

            selectedHandle = this.gridView1.GetSelectedRows()[0];
            if (selectedHandle >= 0)
            {
                string areaid = this.gridView1.GetRowCellValue(selectedHandle, "Areaid").ToString();
                //删除前判断当前区域下面是否有活动测点  20170829
                PointDefineGetByAreaIdRequest PointDefineRequest = new PointDefineGetByAreaIdRequest();
                PointDefineRequest.AreaId = areaid;
                var result = pointDefineService.GetPointDefineCacheByAreaId(PointDefineRequest);
                if (result.Data != null && result.Data.Count > 0)
                {
                    XtraMessageBox.Show("当前区域下面存在已定义设备,请先删除设备,再删除当前区域!");
                    return;
                }
                if (XtraMessageBox.Show("删除不可恢复,是否确定删除?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    AreaDeleteRequest arearequest = new AreaDeleteRequest();
                    arearequest.Id = areaid;
                    areaService.DeleteArea(arearequest);
                    LoadArea();
                }
            }
        }
        public BasicResponse DeleteArea(AreaDeleteRequest arearequest)
        {
            var arearesponse = new BasicResponse();
            //判断缓存中是否存在
            AreaInfo oldArea = null;
            AreaCacheGetByKeyRequest AreaCacheRequest = new AreaCacheGetByKeyRequest();

            AreaCacheRequest.Areaid = arearequest.Id;
            oldArea = _AreaCacheService.GetByKeyAreaCache(AreaCacheRequest).Data;
            if (oldArea == null)
            {
                //缓存中存在此测点
                arearesponse.Code    = 1;
                arearesponse.Message = "当前删除的区域不存在!";
                return(arearesponse);
            }

            //向网关同步数据  20180103
            if (!string.IsNullOrEmpty(oldArea.Bz3) && oldArea.Bz3 == "1")//如果是广播分区,则需要向网关同步数据
            {
                List <AreaInfo> SendItemList = new List <AreaInfo>();
                SendItemList.Add(oldArea);
                var resultSync = SynchronousDataToGateway(SendItemList);
                if (!resultSync)
                {
                    arearesponse.Code    = 1;
                    arearesponse.Message = "向网关同步数据失败!";
                    return(arearesponse);
                }
            }

            _Repository.DeleteArea(arearequest.Id);
            //删除区域限制、禁止进入人员信息
            SaveRestrictedperson(oldArea.Areaid, new List <R_ArearestrictedpersonInfo>());
            //删除区域识别器定义限制信息
            SaveAreaRule(oldArea.Areaid, new List <AreaRuleInfo>());
            //更新区域缓存  20171128
            AreaCacheDeleteRequest AreaCacheDelRequest = new Sys.Safety.Request.PersonCache.AreaCacheDeleteRequest();

            AreaCacheDelRequest.AreaInfo = oldArea;
            _AreaCacheService.DeleteAreaCache(AreaCacheDelRequest);

            return(arearesponse);
        }