private void DoDelete(DataGridViewRow row) { if (MessageBox.Show("确定删除该控制器?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { CtrlWaiting ctrlWaiting = new CtrlWaiting("正在删除中...", () => { try { Maticsoft.Model.SMT_FACERECG_DEVICE dev = (Maticsoft.Model.SMT_FACERECG_DEVICE)row.Tag; DialogResult dr = DialogResult.No; this.Invoke(new Action(() => { dr = MessageBox.Show("是否清除该人脸识别设备权限?", "提示", MessageBoxButtons.YesNo); })); if (dr == DialogResult.Yes) { ThreadPool.QueueUserWorkItem(new WaitCallback((o) => { try { BSTFaceRecg c = FaceRecgHelper.ToFaceController(dev); c.ClearFaces(); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "权限清除异常,可能设备离线或者不存在:" + ex.Message); } })); Thread.Sleep(1000); } Maticsoft.BLL.SMT_FACERECG_DEVICE ctrlBll = new Maticsoft.BLL.SMT_FACERECG_DEVICE(); ctrlBll.Delete(dev.ID); //置门关联控制器为空 Maticsoft.DBUtility.DbHelperSQL.ExecuteSql("delete from SMT_STAFF_FACEDEV where FACEDEV_ID=" + dev.ID); SmtLog.Info("设备", "人脸识别设备删除:" + dev.FACEDEV_IP + "," + dev.FACEDEV_NAME); this.Invoke(new Action(() => { dgvCtrlr.Rows.Remove(row); })); } catch (System.Exception ex) { log.Error("删除人脸识别设备异常:", ex); WinInfoHelper.ShowInfoWindow(this, "删除失败:" + ex.Message); } }); ctrlWaiting.Show(this); } }
private void Save(bool isupload) { if (!CheckInput()) { return; } try { Maticsoft.Model.SMT_FACERECG_DEVICE devInfo = new Maticsoft.Model.SMT_FACERECG_DEVICE(); if (_dev != null) { devInfo.ID = _dev.ID; } else { devInfo.ID = -1; } if (string.IsNullOrWhiteSpace(tbName.Text)) { devInfo.FACEDEV_NAME = ipDevIp.Value; } else { devInfo.FACEDEV_NAME = tbName.Text; } devInfo.FACEDEV_IS_ENABLE = cbIsEnable.Checked; devInfo.FACEDEV_SN = tbDevSn.Text; devInfo.FACEDEV_IP = ipDevIp.Value; devInfo.FACEDEV_CTRL_PORT = iiDevCtrlPort.Value; devInfo.FACEDEV_HEART_PORT = iiDevHeartPort.Value; devInfo.FACEDEV_DB_PORT = iiDbPort.Value; devInfo.FACEDEV_DB_NAME = tbDbName.Text; devInfo.FACEDEV_DB_USER = tbDbUserName.Text; devInfo.FACEDEV_DB_PWD = tbDbPassword.Text; devInfo.FVIDEO_RTSP_COUNT = cbVideoCount1.Checked ? 1 : 3; devInfo.FVIDEO_RTSP = tbRtsp1.Text; devInfo.FVIDEO_RTSP2 = tbRtsp2.Text; devInfo.FVIDEO_RTSP3 = tbRtsp3.Text; devInfo.FVIDEO_FACE_LEVEL = (decimal)diFaceLevel.Value; devInfo.FVIDEO_RIO_X = (decimal)diRIO_X.Value; devInfo.FVIDEO_RIO_Y = (decimal)diRIO_Y.Value; devInfo.FVIDEO_RIO_W = (decimal)diRIO_W.Value; devInfo.FVIDEO_RIO_H = (decimal)diRIO_H.Value; devInfo.FVIDEO_SINGLE = cbModelSingle.Checked ? "Y" : "N"; devInfo.FVIDEO_TITLE1 = tbDevTitle1.Text; devInfo.FVIDEO_TITLE2 = tbDevTitle2.Text; devInfo.AREA_ID = -1; if (cboTreeArea.SelectedNode != null && cboTreeArea.SelectedNode.Tag is Maticsoft.Model.SMT_CONTROLLER_ZONE) { var area = cboTreeArea.SelectedNode.Tag as Maticsoft.Model.SMT_CONTROLLER_ZONE; devInfo.AREA_ID = area.ID; devInfo.AREA_NAME = area.ZONE_NAME; } CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_FACERECG_DEVICE bllDev = new Maticsoft.BLL.SMT_FACERECG_DEVICE(); if (devInfo.ID == -1) { var models = bllDev.GetModelList("FACEDEV_IP='" + devInfo.FACEDEV_IP + "'"); if (models.Count > 0) { WinInfoHelper.ShowInfoWindow(this, "已存在IP为:" + devInfo.FACEDEV_IP + "的设备!"); return; } devInfo.ID = bllDev.Add(devInfo); } else { var models = bllDev.GetModelList("FACEDEV_IP='" + devInfo.FACEDEV_IP + "' and ID != " + devInfo.ID); if (models.Count > 0) { WinInfoHelper.ShowInfoWindow(this, "已存在IP为:" + devInfo.FACEDEV_IP + "的设备!"); return; } bllDev.Update(devInfo); } _dev = devInfo; if (isupload) { try { using (var faceRecg = FaceRecgHelper.ToFaceController(devInfo)) { var video = FaceRecgHelper.ToFaceVideo(devInfo); bool ret = faceRecg.SetVideo(video); if (!ret) { WinInfoHelper.ShowInfoWindow(null, "上传视频设置失败!"); } else if (!devInfo.FACEDEV_IS_ENABLE) { faceRecg.ClearFaces(); } } } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(null, "上传视频设置失败:" + ex.Message); } } WinInfoHelper.ShowInfoWindow(null, "保存成功。"); this.BeginInvoke(new Action(() => { this.DialogResult = DialogResult.OK; this.Close(); })); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message); log.Error("保存异常:" + ex.Message, ex); } }); waiting.Show(this); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message); log.Error("保存异常:" + ex.Message, ex); } }