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); }