private void biDeleteMap_Click(object sender, EventArgs e) { var map = GetSelectMap(); if (map == null) { WinInfoHelper.ShowInfoWindow(this, "请选择要删除的地图!"); } if (MessageBox.Show("确定删除选择地图?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_MAP_DOOR mdbll = new Maticsoft.BLL.SMT_MAP_DOOR(); foreach (var item in map.MAP_DOORS) { mdbll.Delete(item.MAP_ID, item.DOOR_ID, item.DOOR_TYPE); } Maticsoft.BLL.SMT_MAP_INFO mapBll = new Maticsoft.BLL.SMT_MAP_INFO(); mapBll.Delete(map.ID); this.Invoke(new Action(() => { modelTree.SelectedNode.Remove(); mapCtrl.LoadMapInfo(null); })); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "删除地图异常:" + ex.Message); log.Error("删除地图异常:", ex); } }); waiting.Show(this); } }
private void biSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(tbMapName.Text)) { WinInfoHelper.ShowInfoWindow(this, "地图名称不能为空!"); tbMapName.Focus(); return; } if (_mapInfo == null) { _mapInfo = new Maticsoft.Model.SMT_MAP_INFO(); _mapInfo.CREATE_TIME = DateTime.Now; _mapInfo.ID = -1; } if (mapCtrl.MapImage != null) { MemoryStream ms = new MemoryStream(); using (Bitmap bitmap = new Bitmap(mapCtrl.MapImage)) { bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); } _mapInfo.MAP_IMAGE = ms.GetBuffer(); ms.Dispose(); } else { _mapInfo.MAP_IMAGE = new byte[0]; } _mapInfo.MAP_NAME = tbMapName.Text.Trim(); _mapInfo.GROUP_ID = -1; var doors = mapCtrl.GetDoors(); CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_MAP_INFO mapBll = new Maticsoft.BLL.SMT_MAP_INFO(); Maticsoft.BLL.SMT_MAP_DOOR mdBll = new Maticsoft.BLL.SMT_MAP_DOOR(); List <Maticsoft.Model.SMT_MAP_DOOR> mds = new List <Maticsoft.Model.SMT_MAP_DOOR>(); foreach (var item in doors) { Maticsoft.Model.SMT_MAP_DOOR md = new Maticsoft.Model.SMT_MAP_DOOR(); md.DOOR_ID = item.Id; md.MAP_ID = _mapInfo.ID; md.DOOR_TYPE = item.DoorType; md.LOCATION_X = (decimal)item.RatioX; md.LOCATION_Y = (decimal)item.RatioY; md.WIDTH = (decimal)item.RatioWidth; md.HEIGHT = (decimal)item.RatioHeight; mds.Add(md); } if (_mapInfo.ID == -1) { _mapInfo.ID = mapBll.Add(_mapInfo); SmtLog.Info("配置", "添加地图:" + _mapInfo.MAP_NAME); } else { mapBll.Update(_mapInfo); SmtLog.Info("配置", "更新地图:" + _mapInfo.MAP_NAME); var olds = mdBll.GetModelList("MAP_ID=" + _mapInfo.ID); foreach (var old in olds) { mdBll.Delete(old.MAP_ID, old.DOOR_ID, old.DOOR_TYPE); } } foreach (var md in mds) { md.MAP_ID = _mapInfo.ID; mdBll.Add(md); _selectNodes.Find(m => { if (m.Tag is Maticsoft.Model.SMT_DOOR_INFO) { if (((Maticsoft.Model.SMT_DOOR_INFO)m.Tag).ID == md.DOOR_ID && md.DOOR_TYPE == 1) { md.DOOR = (Maticsoft.Model.SMT_DOOR_INFO)m.Tag; return(true); } } else if (m.Tag is Maticsoft.Model.SMT_FACERECG_DEVICE) { if (((Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag).ID == md.DOOR_ID && md.DOOR_TYPE == 2) { md.FACE = (Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag; return(true); } } return(false); }); } _mapInfo.MAP_DOORS = mds; IsChanged = true; this.Invoke(new Action(() => { this.Text = "修改地图:" + tbMapName.Text; })); WinInfoHelper.ShowInfoWindow(this, "保存地图成功!"); } catch (Exception ex) { log.Error("保存地图异常:", ex); WinInfoHelper.ShowInfoWindow(this, "保存异常!" + ex.Message); } }); waiting.Show(this); }