//CommControl.MessageBoxEx.MessageBoxEx messagebox; private void btnOK_Click(object sender, EventArgs e) { DB_Talk.BLL.m_Member _BLL = new DB_Talk.BLL.m_Member(); List<DB_Talk.Model.m_Member> listCount = new List<DB_Talk.Model.m_Member>(); listCount = _BLL.GetModelList(string.Format(" i_flag=0 and BoxID='{0}'", Global.Params.BoxID)); if (listCount.Count >= Global.Params.MaxBoxMemberCount) { CommControl.MessageBoxEx.MessageBoxEx.Show(string.Format("不能导入,号码已经达到最大限制,【{0}】个!", Global.Params.MaxBoxMemberCount), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Bestway.Windows.Forms.ProgressBarDialog procDlg = null; procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); try { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在导入用户,请稍等..."); DataTable dt = new DataTable(); dt = (DataTable)dgvList.DataSource; if (dt == null) { throw new Exception("没有数据!"); } DB_Talk.BLL.m_Member bll = new DB_Talk.BLL.m_Member(); StringBuilder sbAdd = new StringBuilder(); List<DB_Talk.Model.m_Member> listAdd = new List<DB_Talk.Model.m_Member>(); StringBuilder sbNotAdd = new StringBuilder(); StringBuilder sbAdded = new StringBuilder(); //box中已经存在的 StringBuilder sbBoxMaxNotAdded = new StringBuilder(); //box到达最大值未添加的 //List<DB_Talk.Model.m_Member> list = (List < DB_Talk.Model.m_Member >)dgvListOk.DataSource; List<DB_Talk.Model.m_Member> list = DataTableToModelList(dt); int iAdd=0,iAdded = 0; //添加成功数,已经存在的数 int iRepeatIP=0; //IP已经存在的 int iNotAdd = 0; //添加失败数 int iBoxMaxNotAdded = 0; //到达最大后的用户 if (dt.Rows.Count == 0) { throw new Exception("没有数据可以导入!"); } if (list.Count == 0) { throw new Exception("没有合法的数据可以导入!"); } foreach (DB_Talk.Model.m_Member item in list) { if (listCount.Count + iAdded >= Global.Params.MaxBoxMemberCount) //到达最大值 { iBoxMaxNotAdded++; sbBoxMaxNotAdded.Append("," + item.i_Number); } else { string strW = " i_Flag=0 and BoxID='" + Global.Params.BoxID + "'"; //strW += " and vc_Name='" + item.vc_Name + "'"; strW += " and i_Number='" + item.i_Number + "'"; bool IsExist = MBoxSDK.ConfigSDK.MBOX_IsSubscriberExist(Global.Params.BoxHandle,(item.i_Number.Value)); CommControl.Tools.WriteLog.AppendLog("box添加号码", "boxHandle:" + Global.Params.BoxHandle + ", 号码:" + Convert.ToInt32(item.i_Number.ToString()) + ", 是否存在:" + IsExist); if (bll.Exists(strW) || IsExist) //MBoxSDK.ConfigSDK.MBOX_IsSubscriberExist(Global.Params.BoxHandle, Convert.ToInt32(item.i_Number.ToString()))) { iAdded++; sbAdded.Append("," + item.i_Number);//.vc_Name); } else if (item.i_TellType.Value == PublicEnums.EnumTelType.广播.GetHashCode() && _BLL.GetModelList(string.Format(" i_flag=0 and vc_IP='{0}' and BoxID='{1}'", item.vc_IP, item.BoxID)).Count > 0) { //(string.Format("数据库中IP【{0}】已存在!", item.i_Number) iRepeatIP++; } else { item.i_supplementSerive = (int)(MBoxSDK.ConfigSDK.SPM_MISS_CALL | MBoxSDK.ConfigSDK.SPM_MISS_CALL_ON_BUSY | MBoxSDK.ConfigSDK.SPM_SMS | MBoxSDK.ConfigSDK.SPM_THREE_PARTY | MBoxSDK.ConfigSDK.SPM_CALL_WAITING | MBoxSDK.ConfigSDK.SPM_CALL_TRANSFER); // | // MBoxSDK.ConfigSDK.SPM_CALL_PICKUP); bool create= new frmMember(null, 0).AddBase(item); //bool create = MBoxSDK.ConfigSDK.MBOX_CreateSubscriber(Global.Params.BoxHandle,ref subscriberBase); if (create) //MBoxSDK.ConfigSDK.MBOX_CreateSubscriber(Global.Params.BoxHandle, Convert.ToInt32(item.i_Number.ToString()))) { listAdd.Add(item); //bll.Add(item); //CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Add, "导入", "导入了人员:" + item.vc_Name, ""); sbAdd.Append("," + item.i_Number); iAdd++; procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 用户【" + item.vc_Name + "】正在写入硬件,请稍等..."); } else { sbNotAdd.Append("," + item.i_Number); //.vc_Name); iNotAdd++; } } } } string mes = ""; bool bSave = false; if (iAdd > 0) { TimeSpan sp = new TimeSpan(0); DateTime dtstart = System.DateTime.Now; bSave = MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); //保存更改 DateTime dtEnd = System.DateTime.Now; if (bSave) { sp = dtEnd - dtstart; //CommControl.MessageBoxEx.MessageBoxEx.Show(sp.TotalMilliseconds.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } //sbAdd.Remove(0, 1); } if (bSave) { foreach (DB_Talk.Model.m_Member item in listAdd) { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 用户【" + item.vc_Name + "】加入数据库,请稍等..."); bll.Add(item); CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Add, "导入", "导入了人员:" + item.vc_Name, ""); } if (iAdd > 10) { mes = "共导入【" + iAdd + "】个用户!\r\n"; } else if (iAdd > 0 && iAdd <= 10) { sbAdd.Remove(0, 1); mes = "号码【" + sbAdd.ToString() + "】导入成功!\r\n"; } } else if (iAdd!=0) { mes = "保存硬件配置失败!\r\n"; } if (iNotAdd > 10) { mes += "【" + iNotAdd + "】个号码写入硬件失败!\r\n"; } else if (iNotAdd > 0 && iNotAdd <= 10) { sbNotAdd.Remove(0, 1); mes += "号码【" + sbNotAdd.ToString() + "】写入硬件失败!\r\n"; } if (iAdded > 10) { mes += "【" + iAdded + "】个号码已经存在,不再导入!\r\n"; } else if (iAdded > 0 && iAdded <= 10) { sbAdded.Remove(0, 1); mes += "号码【" + sbAdded.ToString() + "】已经存在,不再导入!\r\n"; } if(iBoxMaxNotAdded>5) { mes += "设备中号码已经达到最大值,【" + iBoxMaxNotAdded + "】个号码,不再导入!"; } else if (iBoxMaxNotAdded > 0 && iBoxMaxNotAdded <= 5) { sbBoxMaxNotAdded.Remove(0, 1); mes += "设备中号码已经达到最大值,号码【" + sbBoxMaxNotAdded + "】,不再导入!"; } if (iRepeatIP>0) { mes += "【" + iRepeatIP + "】个重复IP,不再导入!"; } procDlg.Dispose(); if (mes.Length > 0) { CommControl.MessageBoxEx.MessageBoxEx.Show(mes, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; this.Close(); } } catch (Exception ex) { procDlg.Dispose(); CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void btnAdd_Click(object sender, EventArgs e) { if (!IsSetBoxNumLenAndHead()) { CommControl.MessageBoxEx.MessageBoxEx.Show("还未进行基本设置,不能执行添加操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DB_Talk.BLL.m_Member _BLL = new DB_Talk.BLL.m_Member(); List<DB_Talk.Model.m_Member> list = new List<DB_Talk.Model.m_Member>(); list = _BLL.GetModelList(string.Format(" i_flag=0 and BoxID='{0}'", Global.Params.BoxID)); if (list.Count >= Global.Params.MaxBoxMemberCount) { CommControl.MessageBoxEx.MessageBoxEx.Show(string.Format("不能添加,号码已经达到最大限制,【{0}】个!", Global.Params.MaxBoxMemberCount), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } UI.frmMember frm = new UI.frmMember(null, 0); frm.ShowDialog(); if(frm.DialogResult==DialogResult.OK) LoadData(""); }
private void GetModel() { _mModel.BoxID = Global.Params.BoxID; _mModel.vc_Name = txtName.Text.Trim(); if (txtName.Enabled==true && _mModel.vc_Name == "") { txtName.Focus(); throw new Exception("用户名称不可以为空"); } if (_mModel.vc_Name.IndexOf("'") >= 0) { txtName.Focus(); throw new Exception("名称中不可以有特殊字符"); } /* if (_mModel.DepartmentID == null) { throw new Exception("请选择部门"); } */ if (txtTel.Text.Trim() == "" || int.Parse(txtTel.Text.Trim()) == 0 ) { txtTel.Focus(); throw new Exception("电话号码不可以为空或零"); } string str = txtTel.Text.Trim().Substring(0,1); if (txtTel.Text.Trim().Length != Global.Params.NumberLen || CheckNumberRule(txtTel.Text.Trim(), Global.Params.strNumHead)==false) { txtTel.Focus(); string mes = Global.Params.strNumHead.Replace(",", "或"); throw new Exception("用户号码长度必须是【" + Global.Params.NumberLen + "】位,且以数字【" + mes + "】开头"); } DB_Talk.Model.m_Box modelBox = new DB_Talk.BLL.m_Box().GetModel(Global.Params.BoxID); if (modelBox != null) { if (modelBox.i_DispatchNumber == int.Parse(txtTel.Text.Trim())) { throw new Exception("用户号码不能和调度号码(" + modelBox.i_DispatchNumber + ")相同!"); } if (modelBox.i_EmergencyNumber == int.Parse(txtTel.Text.Trim())) { throw new Exception("用户号码不能和紧急号码(" + modelBox.i_EmergencyNumber+ ")相同!"); } } //if (txtTel.Text.Replace(" ", "").Length != Global.Params.NumberLen) //{ // txtTel.Focus(); // throw new Exception("电话号码必须是: "+Global.Params.NumberLen+" 位"); //} _mModel.i_Number = int.Parse(txtTel.Text.Replace(" ", "").Trim()); if (cmbNoType.SelectedValue.ToString() != CommControl.PublicEnums.EnumTelType.G3G手机.GetHashCode().ToString()) { if (_mModel.i_NuPasswordType == null) throw new Exception("请选择密码模式"); if (_mModel.i_NuPasswordType == PublicEnums.EnumTelPasswordType.增加.GetHashCode()) { _mModel.i_NuPassword = (UInt64)_mModel.i_Number; } else { if (txtPassword.Text.Trim() == "") { txtPassword.Focus(); throw new Exception("当密码模式为固定时,用户密码不能为空"); } _mModel.i_NuPassword = UInt64.Parse(txtPassword.Text.Trim()); //UInt64 pasw = 0; //if (UInt64.TryParse(txtPassword.Text.Trim(), out pasw) && pasw > 100 && pasw<=999999999999) // //pasw.ToString().Length >= 3 && pasw.ToString().Length <= 12) // _mModel.i_NuPassword = pasw; //else // throw new Exception("用户密码必须是100~999999999999位之间的数字"); // //throw new Exception("用户密码长度必须在3~12位之间,且大于零"); } } else { _mModel.i_NuPasswordType=0; _mModel.i_NuPassword = 0; } if (_mModel.NumberTypeID == null) { throw new Exception("请选择号码类别"); } _mModel.vc_MAC = txtMAC.Text.Trim(); //if (_mModel.vc_MAC == "") //{ // txtMAC.Focus(); // throw new Exception("MAC不可以为空"); //} if (_mModel.vc_MAC.IndexOf("'") >= 0) { txtName.Focus(); throw new Exception("MAC中不可以有特殊字符"); } if (txtTelEnd.Text.Trim() != "") { string strEnd = txtTelEnd.Text.Trim().Substring(0, 1); if (txtTelEnd.Text.Trim().Length != Global.Params.NumberLen || Global.Params.strNumHead.IndexOf(str) < 0) { txtTelEnd.Focus(); string mes = Global.Params.strNumHead.Replace(",", "或"); throw new Exception("用户号码长度必须是【" + Global.Params.NumberLen + "】位,且以数字【" + mes + "】开头"); } addCount =Int64.Parse(txtTelEnd.Text.Trim()) -_mModel.i_Number.Value; if (addCount < 0) { txtTelEnd.Focus(); throw new Exception("终止号码不可以小于起始号码"); } else { DB_Talk.BLL.m_Member _BLL = new DB_Talk.BLL.m_Member(); List<DB_Talk.Model.m_Member> listCount = new List<DB_Talk.Model.m_Member>(); listCount = _BLL.GetModelList(string.Format(" i_flag=0 and BoxID='{0}'", Global.Params.BoxID)); if (listCount != null && (addCount > Global.Params.MaxBoxMemberCount - listCount.Count)) { throw new Exception(string.Format("终止号码过大,最多还能添加【{0}】个号码!", Global.Params.MaxBoxMemberCount-listCount.Count)); } } } if (txtIP1.Enabled) { if (txtIP1.Text=="" || txtIP2.Text=="") { throw new Exception("起始或者终止IP地址不能为空!"); } bool b = IsSameLanNet(IPAddress.Parse(txtIP1.Text.Trim()), IPAddress.Parse(txtIP2.Text.Trim())); if (!b) { throw new Exception("起始IP与终止IP不在一个网段"); } string[] IP1 = txtIP1.Text.Trim().Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries); string[] IP2 = txtIP2.Text.Trim().Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries); int addCountIP = int.Parse(IP2[3]) - int.Parse(IP1[3]); if (addCountIP < 0) { txtIP2.Focus(); throw new Exception("终止IP不可以小于起始IP"); } if (addCount==0 && addCountIP>0) { throw new Exception("起始IP与终止IP不同时,终止号码不能为空!\n\n且增加号码个数与IP个数必须相同"); } else if (addCount!=addCountIP) { throw new Exception("增加的号码个数与IP个数不一致"); } _mModel.vc_IP = txtIP1.Text.Trim(); } if (_mModel.i_TellType == CommControl.PublicEnums.EnumTelType.G3G手机.GetHashCode() && txtUmtsImsi.Text.Trim()=="") { throw new Exception("3G号码标示码不能为空"); } _mModel.vc_UmtsImsi = txtUmtsImsi.Text.Trim(); _mModel.vc_Memo = txtMemo.Text.Trim(); if (_mModel.vc_Memo.IndexOf("'") >= 0) { txtMemo.Focus(); throw new Exception("备注中不可以有特殊字符"); } if (groupBoxG.Visible == true) { if (chkUnCForward.Checked && txtUnCForward.Text == "") { txtUnCForward.Focus(); throw new Exception("请设置无条件呼叫前转号码"); } else if (txtUnCForward.Text != "") { if (txtUnCForward.Text.Trim() == txtTel.Text.Trim()) { txtUnCForward.Focus(); throw new Exception("无条件呼叫前转号码不能与自身号码相同"); } _mModel.i_UnCForwardNu = int.Parse(txtUnCForward.Text); } else { _mModel.i_UnCForwardNu = 0; } if (chkNoAnswerForward.Checked && txtNoAnswerForward.Text == "") { txtNoAnswerForward.Focus(); throw new Exception("请设置无应答呼叫前转号码"); } else if (txtNoAnswerForward.Text != "") { if (txtNoAnswerForward.Text.Trim() == txtTel.Text.Trim()) { txtNoAnswerForward.Focus(); throw new Exception("无应答呼叫前转号码不能与自身号码相同"); } _mModel.i_NoAnswerForward = int.Parse(txtNoAnswerForward.Text); } else { _mModel.i_NoAnswerForward = 0; } if (chkBusyForward.Checked && txtBusyForward.Text == "") { txtBusyForward.Focus(); throw new Exception("请设置遇忙前转号码"); } else if (txtBusyForward.Text != "") { if (txtBusyForward.Text.Trim() == txtTel.Text.Trim()) { txtBusyForward.Focus(); throw new Exception("遇忙转接号码不能与自身号码相同"); } _mModel.i_BusyForward = int.Parse(txtBusyForward.Text); } else { _mModel.i_BusyForward = 0; } if (chkPowerOffForward.Checked && txtPowerOffForward.Text == "") { txtPowerOffForward.Focus(); throw new Exception("请设置关机前转号码"); } else if (txtPowerOffForward.Text != "") { if (txtPowerOffForward.Text.Trim() == txtTel.Text.Trim()) { txtPowerOffForward.Focus(); throw new Exception("关机前转号码不能与自身号码相同"); } _mModel.i_PowerOffForward = int.Parse(txtPowerOffForward.Text); } else { _mModel.i_PowerOffForward = 0; } if (chkDirectNum.Checked && txtDirectNum.Text == "") { txtDirectNum.Focus(); throw new Exception("请设置直通号码"); } else if (txtDirectNum.Text != "") { if (txtDirectNum.Text.Trim() == txtTel.Text.Trim()) { txtDirectNum.Focus(); throw new Exception("直播号码不能与自身号码相同"); } _mModel.i_DirectNum = int.Parse(txtDirectNum.Text); } else { _mModel.i_DirectNum = 0; } if (chkAssociateNum1.Checked && txtAssociateNum1.Text == "") { txtAssociateNum1.Focus(); throw new Exception("请设置关联号码1"); } else if (txtAssociateNum1.Text != "") { if ( _mModel.i_AssociateNum1 != int.Parse(txtAssociateNum1.Text)) { _mModel.i_AssociateNum1 = int.Parse(txtAssociateNum1.Text); CheckAssociateNum(_mModel.i_AssociateNum1.ToString()); } } else { _mModel.i_AssociateNum1 = 0; } if (chkAssociateNum2.Checked && txtAssociateNum2.Text == "") { txtAssociateNum2.Focus(); throw new Exception("请设置关联号码2"); } else if (txtAssociateNum2.Text != "") { _mModel.i_AssociateNum2 = int.Parse(txtAssociateNum2.Text); CheckAssociateNum(_mModel.i_AssociateNum2.ToString()); } else { _mModel.i_AssociateNum2 = 0; } if (txtAssociateNum1.Text.Trim() != "" && txtAssociateNum2.Text.Trim() != "" && txtAssociateNum1.Text.Trim() == txtAssociateNum2.Text.Trim()) { txtAssociateNum2.Focus(); throw new Exception("两个关联号码不能相同"); } } }