private void btnOk_Click(object sender, EventArgs e) { if (NewFormMain.LoadBox(Global.Params.BoxIP)) { string mesQuestion = "确认设备 【" + Global.Params.BoxIP + "】要恢复出厂设置吗?"; DialogResult dr = CommControl.MessageBoxEx.MessageBoxEx.Show(mesQuestion, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { //LoadControl(null); if (MBoxSDK.ConfigSDK.MBOX_ClearDeviceCfg(Global.Params.BoxHandle)) // && ClearDispatchTell()) //删除两个调度号码 { //清空数据库 ClearDB(); //int iFind = Global.Params.LstBox.FindIndex(item => item.vc_IP == Global.Params.BoxIP); //if(iFind>=0) Global.Params.LstBox[iFind].i_Flag = 0; //checkOnline_StateChange(Global.Params.BoxIP, false); Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, "正在恢复出厂设置,请稍等..."); System.Threading.Thread.Sleep(5000); procDlg.Dispose(); CommControl.MessageBoxEx.MessageBoxEx.Show("设备【" + Global.Params.BoxIP + "】恢复出厂设置成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //重新取BOX信息 Global.Params.LstBox = new DB_Talk.BLL.m_Box().GetModelList("i_Flag=0"); Global.Params.frmMain.LoadModelList(); CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.SystemOperate, "恢复", "恢复出厂设置", ""); } else CommControl.MessageBoxEx.MessageBoxEx.Show("设备【" + Global.Params.BoxIP + "】恢复出厂设置失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { CommControl.MessageBoxEx.MessageBoxEx.Show("未登录设备【" + Global.Params.BoxIP + "】,不能执行此操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void btnDown_Click(object sender, EventArgs e) { Bestway.Windows.Forms.ProgressBarDialog prog = new Bestway.Windows.Forms.ProgressBarDialog(); try { if (NewFormMain.LoadBox(Global.Params.BoxIP)) { ftp.FindFtpFileList(""); int i = 0; foreach (FtpFileInfo info in ftp.lstftpfile) { prog.Show(Bestway.Windows.Forms.EnumDisplayType.Custom, "正在备份文件:" + info.FileName); i++; ftp.Download(info.FileFullName, Global.Params.FILE_PATH_BOXCONFIG); //"F:\\xiazai"); } string mes = "硬件配置备份成功\r\n"; DbOper dboper = new DbOper(); prog.Show(Bestway.Windows.Forms.EnumDisplayType.Custom, "正在备份数据库..."); if (dboper.DbBackup(Global.Params.FILE_PATH_BOXCONFIG_DB)) { mes += "数据库备份成功"; } else { mes += "数据库备份失败!" +dboper.errorMes; } prog.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show(mes, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch(Exception ex) { CommControl.MessageBoxEx.MessageBoxEx.Show(ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { prog.Dispose(); } }
public void ReStartBox() { MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); if (Global.Params.IsRestart) { Global.Params.IsRestart = false; Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, "正在重启站点【" + Global.Params.BoxIP + "】,请稍等..."); MBoxSDK.ConfigSDK.MBOX_Restart(Global.Params.BoxHandle); int iFind = Global.Params.LstBox.FindIndex(item => item.vc_IP == Global.Params.BoxIP); if (iFind >= 0) Global.Params.LstBox[iFind].i_Flag = 0; checkOnline_StateChange(Global.Params.BoxIP, false); System.Threading.Thread.Sleep(5000); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, "重启站点【" + Global.Params.BoxIP + "】成功..."); //CommControl.MessageBoxEx.MessageBoxEx.Show("重启设备【" + Global.Params.BoxIP + "】成功", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); System.Threading.Thread.Sleep(500); procDlg.Dispose(); } }
public static bool LoadBox(string BoxIP) { // return true; //登录box Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); bool b = false; try { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在登录" + Global.Params.BOXNAME + "【" + BoxIP + "】,请稍等..."); if (Global.Params.BoxHandle > 0) { //MBoxSDK.ConfigSDK.MBOX_Logout(Global.Params.BoxHandle); Global.Params.BoxHandle = 0; } Global.Params.BoxHandle = MBoxSDK.ConfigSDK.MBOX_Login(BoxIP, "", "", ""); b = Global.Params.BoxHandle > 0 ? true : false; b = b && MBoxSDK.ConfigSDK.MBOX_IsDeviceOnline(BoxIP); if (b) { Global.Params.BoxType = Global.Methods.GetBoxType(Global.Params.BoxHandle); int iFind = Global.Params.LstBox.FindIndex(item => item.vc_IP == Global.Params.BoxIP); if (iFind >= 0) Global.Params.LstBox[iFind].i_Flag = 1; // Global.Params.LstBox.Find(item => item.vc_IP == Global.Params.BoxIP).i_Flag = 1; //b =Tools.MBoxOperate.CreateCalinglSourceRule(); } Global.Params.frmMain.checkOnline_StateChange(Global.Params.BoxIP, b); LoadBoxError(b == true ? 1 : 0, ""); } catch (Exception ex) { CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } return b; }
private void btnUp_Click(object sender, EventArgs e) { Bestway.Windows.Forms.ProgressBarDialog prog = new Bestway.Windows.Forms.ProgressBarDialog(); try { if (NewFormMain.LoadBox(Global.Params.BoxIP)) { //ftp.FindLocalFile(@"F:\xiazai\tffs0\cfg"); //ftp.FindLocalFile(@"F:\xiazai\tffs0\db"); if (radioButton1.Checked) { //仅还原配置文件 ftp.FindLocalFile(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\cfg"); ftp.FindLocalFile(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\db"); ftp.FindLocalFile(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\boot"); ftp.FindLocalFile(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\fw"); ftp.FindLocalFile(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\lc"); //if (!Directory.Exists(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\cfg") || // !Directory.Exists(Global.Params.FILE_PATH_BOXCONFIG + @"\tffs0\db")) //{ // throw new Exception("硬件配置文件不存在,无法恢复"); //} } else if (radioButton2.Checked) { //全部还原 ftp.FindLocalFile(Global.Params.FILE_PATH_BOXCONFIG); //if (!Directory.Exists(Global.Params.FILE_PATH_BOXCONFIG)) //{ // throw new Exception("硬件配置文件不存在,无法恢复"); //} } if (ftp.lstLocalfile.Count == 0) { throw new Exception("硬件配置文件不存在,无法恢复"); } if (!File.Exists(Global.Params.FILE_PATH_BOXCONFIG_DB + "\\" + Global.Params.ConfigModel.DBInfo.DatabaseName + ".bak")) { throw new Exception("数据库文件不存在,无法恢复"); } int i = 0; foreach (FtpFileInfo info in ftp.lstLocalfile) { i++; prog.Show(Bestway.Windows.Forms.EnumDisplayType.Custom, "正在恢复文件:" + info.FileName); ftp.UpToFtpFile(info.FileFullName, Global.Params.FILE_PATH_BOXCONFIG); } string mes = "硬件配置恢复成功\r\n"; DbOper dboper = new DbOper(); prog.Show(Bestway.Windows.Forms.EnumDisplayType.Custom, "正在还原数据库..."); //DB_Talk.DB.OleDbHelper.Dispose(); if (dboper.DbRestore(Global.Params.FILE_PATH_BOXCONFIG_DB)) { mes += "数据库还原成功!"; } else { mes += "数据库还原失败!" + dboper.errorMes; } prog.Hide(); if (dboper.errorMes == "") { //重启站点 Global.Params.IsRestart = true; Global.Params.frmMain.ReStartBox(); } //数据库连接 Start.frmConnect frmConnect = new Start.frmConnect(); frmConnect.ShowDialog(); frmConnect = null; //prog.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在连接数据库,请稍等..."); //if (Program.OpenDataBase() == false) //{ // prog.Hide(); // DialogResult dr = new DialogResult(); // dr = (new Start.frmDatabaseConfig()).ShowDialog(); // if (dr == DialogResult.Cancel) // { // return; // } //} CommControl.MessageBoxEx.MessageBoxEx.Show(mes, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { prog.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { prog.Dispose(); } }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Form1()); // Application.Run(new TalkLog()); try { //new FormCallKeyborad(null).ShowDialog(); // new Form1().ShowDialog(); //单例模式 bool bCreatedNew; System.Threading.Mutex mutex = new System.Threading.Mutex(false, Application.ProductName, out bCreatedNew); if (!bCreatedNew) { CommControl.MessageBoxEx.MessageBoxEx.Show("程序已打开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //捕获程序级错误 Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionEventHandler); Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(new FormWelcome()); Form tempForm = new Form(); tempForm.FormBorderStyle = FormBorderStyle.None; tempForm.Size = new System.Drawing.Size(1, 1); tempForm.Show(); tempForm.Hide(); //bool b = DB_Talk.DB.OpenDataBase("172.21.2.78\\hc", "MBoxOss", "Tester1", "User@1234", new ExecuteErrorEventHandler(OleDbHelper_ExecuteError)); Pub._configModel = Config.GetModel(); if (Pub._configModel.LocalIP == "127.0.0.1") { IPHostEntry hostName = Dns.GetHostByName(Dns.GetHostName()); if (hostName.AddressList.Length > 0) { Pub._configModel.LocalIP = hostName.AddressList[0].ToString(); Config.WriteModel(Pub._configModel); } } // bool b = DB_Talk.DB.OpenDataBase(Pub._configModel.DBServer, Pub._configModel.DBName, Pub._configModel.DBUserName, Pub._configModel.DBPassword, new ExecuteErrorEventHandler(OleDbHelper_ExecuteError)); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在连接数据库,请稍等..."); if (OpenDataBase() == false) { procDlg.Hide(); DialogResult dr = new DialogResult(); dr = (new frmDatabaseConfig()).ShowDialog(); if (dr == DialogResult.Cancel) { procDlg.Dispose(); return; } } procDlg.Hide(); if (Pub._configModel.IsAutoLogin) { List<DB_Talk.Model.m_Manager> lst = new List<DB_Talk.Model.m_Manager>(); lst = new DB_Talk.BLL.m_Manager().GetModelList(string.Format("vc_UserName='******' and i_Flag=0 ", "admin")); Pub._configModel.LastUser = "******"; if (lst != null && lst.Count > 0) { Pub.manageModel = lst[0]; if (Pub.manageModel.i_Dispatch.Value != 1) { MessageBoxEx.Show("当前用户没有调度权限,请联系管理员!", "提示"); return; } Config.WriteModel(Pub._configModel); //选择Box; FormSelectBox fs = new FormSelectBox(); if (fs.LoadBoxList() == true) { fs.ShowDialog(); } if (Pub.manageModel.BoxID == null) { MessageBoxEx.Show("请先到网管程序配置语音调度交换机", "提示"); return; } DB_Talk.Model.m_Box boxModel = new DB_Talk.BLL.m_Box().GetModel(Pub.manageModel.BoxID.Value); if (boxModel == null) { MessageBoxEx.Show("请到网管程序增加MBox设备!", "提示"); return; } ///添加调度号码,取调度的前两个 List<DB_Talk.Model.m_Member> lstM = new List<DB_Talk.Model.m_Member>(); lstM = new DB_Talk.BLL.m_Member().GetModelList(string.Format("boxID={0} and i_isdispatch=1 and i_Flag=0", Pub.manageModel.BoxID)); if (lstM.Count >= 2) { Pub.manageModel.LeftDispatchNumber = lstM[0].i_Number; Pub.manageModel.LeftDispatchName = lstM[0].vc_Name; Pub.manageModel.RightDispatchNumber = lstM[1].i_Number; Pub.manageModel.RightDispatchName = lstM[1].vc_Name; } else { MessageBoxEx.Show("请到网管程序添加调度号码!", "提示"); return; } lstM = new DB_Talk.BLL.m_Member().GetModelList(string.Format("boxID={0} and i_isdispatch=2 and i_Flag=0", Pub.manageModel.BoxID)); if (lstM != null && lstM.Count > 0) { Pub.VideoNumber = lstM[0].i_Number.Value.ToString(); Pub.VideoPassword = lstM[0].i_NuPassword.ToString(); } else { if (Pub._configModel.IsVideoCall) { MessageBoxEx.Show("请到网管程序添加视频调度号码!", "提示"); return; } } if (Pub._configModel.IsVideoCall) { if (Pub._configModel.VideoSize<=0 || Pub._configModel.VideoSize>=10) { MessageBoxEx.Show("请设置合适的视频大小!", "提示"); return; } } if (boxModel.i_MaxMeetingMember != null) { Pub._maxMeetingMemberCount = boxModel.i_MaxMeetingMember.Value; } CommControl.SystemLogBLL.WriteLog( Pub.manageModel.ID, Pub.manageModel.BoxID.Value, SystemLogBLL.EnumLogAction.SystemOperate, "登录", "登录成功", ""); } else { MessageBoxEx.Show("请先到网管程序进行配置!", "提示"); return; } } else { FormLogin frmLogin = new FormLogin(FormLogin.EnumLoginType.Login); if (frmLogin.ShowDialog() == DialogResult.Cancel) { procDlg.Dispose(); return; } } Pub.CanDestroyControl = false; //frmLogin.Dispose(); List<DB_Talk.Model.m_Member> lstMember = new DB_Talk.BLL.m_Member().GetModelList(string.Format("i_Flag=0 and BoxID={0} order by id", Pub.manageModel.BoxID.Value)); if (lstMember.Count == 0) { CommControl.MessageBoxEx.MessageBoxEx.Show("请先到网管软件增加用户", "提示"); return; } FormMain frmMain = new FormMain(); //Form1 frmMain = new Form1(); //frmMain.Width = 1; //frmMain.Height = 1; procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在初始化程序,请稍等..."); frmMain.WindowState = FormWindowState.Normal; frmMain.Show();//为了让加载主窗体滚动条显示出来 frmMain.Visible = false; Pub._pageControl = Pub._meetingManage.GetToSelectPageControl(); if (Pub._pageControl == null) { procDlg.Hide(); MessageBoxEx.Show("请先到网管程序增加电话号码!", "提示"); return; } frmMain.ShowLoadOk(); frmMain.Visible = true; int tt = 10000;//当所有用户的信息都上报之后LstMember.cout会等于0,如果意外情况下Box内部没有上报数据库中的号码的话,这里执行10000次自动跳过 while (FormMain._lstMember.Count>0 && tt>=0) { tt--; System.Threading.Thread.Sleep(1); Application.DoEvents(); } frmMain.SetDispatchAndLoadState(); frmMain.WindowState = System.Windows.Forms.FormWindowState.Maximized; procDlg.Hide(); procDlg.Dispose(); Pub._memberManage.ClickTab(); frmMain.imgBtnMeeting_Click(null, null); Pub._meetingManage.ClickTab(); frmMain.imgBtnDispatch_Click(null, null); frmMain.SetSortButton(); Pub.CanDestroyControl = true; frmMain.SetDefaultMemberGroupIndex(); frmMain.SetMenuSelect(); //new Form1().ShowDialog(); Application.Run(frmMain); } catch (Exception ex) { CommControl.Tools.WriteLog.AppendLog("Main:" + ex.Message + ex.StackTrace); //MessageBoxEx.Show(ex.Message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Environment.Exit(0); } }
//删除PRI中继 private void btnDeletePRI_Click(object sender, EventArgs e) { if (dgvPRI.CurrentRow != null) { if (!NewFormMain.LoadBox(Global.Params.BoxIP)) { CommControl.MessageBoxEx.MessageBoxEx.Show("登录站点【" + Global.Params.BoxIP + "】失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); try { bool delete = false; DB_Talk.Model.m_PRIInterface model = dgvPRI.CurrentRow.Tag as DB_Talk.Model.m_PRIInterface; if (model != null) { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在删除PRI中继【" + model.PRIID + "】,请稍等..."); List<DB_Talk.Model.m_CalledRule> lstAdd = new List<DB_Talk.Model.m_CalledRule>(); List<DB_Talk.Model.m_CalledRule> lstDelete = new List<DB_Talk.Model.m_CalledRule>(); if (model.vc_OutNumberLocal!=null) { GetCalledRule(0, model.PRIID, "", model.vc_OutNumberLocal, ref lstAdd, ref lstDelete, MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.市话); } if (model.vc_OutNumber!=null) { GetCalledRule(0, model.PRIID, "", model.vc_OutNumber, ref lstAdd, ref lstDelete, MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途); } if (Tools.MBoxOperate.DeletePRI(model, lstAdd, lstDelete) && new DB_Talk.BLL.m_PRIInterface().Delete(model.ID)) { MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); delete = true; } } else //还未添加 直接删除 delete = true; if (delete) { dgvPRI.Rows.Remove(dgvPRI.CurrentRow); procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show("删除失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception ex) { procDlg.Hide(); CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } } else { CommControl.MessageBoxEx.MessageBoxEx.Show("请选择要删除的PRI中继!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } }
//保存SIP private void btnSave_Click(object sender, EventArgs e) { if (!NewFormMain.LoadBox(Global.Params.BoxIP)) { CommControl.MessageBoxEx.MessageBoxEx.Show("登录站点【" + Global.Params.BoxIP + "】失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } System.Collections.Generic.Dictionary<DB_Talk.Model.m_SIPInterface, DB_Talk.Model.m_SIPInterface> lst = new Dictionary<DB_Talk.Model.m_SIPInterface, DB_Talk.Model.m_SIPInterface>(); try { lst = GetLstSIPInterface(); if (lst==null || lst.Count==0) { return; } } catch(Exception ex) { CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } string mes=""; Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); try { try { foreach (System.Collections.Generic.KeyValuePair<DB_Talk.Model.m_SIPInterface, DB_Talk.Model.m_SIPInterface> d in lst) { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在保存SIP中继【" + d.Key.SIPID + "】,请稍等..."); List<DB_Talk.Model.m_CalledRule> lstAdd = new List<DB_Talk.Model.m_CalledRule>(); List<DB_Talk.Model.m_CalledRule> lstDelete = new List<DB_Talk.Model.m_CalledRule>(); string outNum = ""; //原有的引导码 if (d.Value != null) outNum = d.Value.vc_OutNumber == null ? "" : d.Value.vc_OutNumber; string outNumLocal = ""; //原有的引导码 if (d.Value != null) outNumLocal = d.Value.vc_OutNumberLocal == null ? "" : d.Value.vc_OutNumberLocal; if (d.Key.vc_OutNumberLocal!=null) { GetCalledRule(d.Key.SIPID, 0, d.Key.vc_OutNumberLocal, outNumLocal, ref lstAdd, ref lstDelete, MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.市话); } if (d.Key.vc_OutNumber!=null) { GetCalledRule(d.Key.SIPID, 0, d.Key.vc_OutNumber, outNum, ref lstAdd, ref lstDelete, MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途); } if (!Tools.MBoxOperate.CreateSIP(d.Key, d.Value, lstAdd, lstDelete)) { mes = d.Key.SIPID.ToString(); procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show("保存SIP中继【" + d.Key.SIPID + "】失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); break; } } } catch (Exception ex) { procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Loaddata(1); if (mes == "") { MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); procDlg.Hide(); //CommControl.MessageBoxEx.MessageBoxEx.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); DialogResult dr = CommControl.MessageBoxEx.MessageBoxEx.Show("SIP中继保存成功,需要重启后生效,请确认是否要重启,点击【确定】重启,点击【取消】不重启", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { Global.Params.frmMain.ReStartBox(); } else { Global.Params.IsRestart = false; } } } catch (Exception ex) { procDlg.Hide(); CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } }
//保存PRI中继 private void btnSavePRI_Click(object sender, EventArgs e) { if (!NewFormMain.LoadBox(Global.Params.BoxIP)) { CommControl.MessageBoxEx.MessageBoxEx.Show("登录站点【" + Global.Params.BoxIP + "】失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); try { System.Collections.Generic.Dictionary<DB_Talk.Model.m_PRIInterface, DB_Talk.Model.m_PRIInterface> Dic = new Dictionary<DB_Talk.Model.m_PRIInterface, DB_Talk.Model.m_PRIInterface>(); try { Dic = GetLstPRIInterface(); if (Dic == null || Dic.Count == 0) { return; } } catch (Exception ex) { CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } string mes = ""; //foreach (DB_Talk.Model.m_SIPInterface m in lst) try { foreach (System.Collections.Generic.KeyValuePair<DB_Talk.Model.m_PRIInterface, DB_Talk.Model.m_PRIInterface> d in Dic) { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在保存PRI中继【" + d.Key.PRIID + "】,请稍等..."); List<DB_Talk.Model.m_CalledRule> lstAdd = new List<DB_Talk.Model.m_CalledRule>(); List<DB_Talk.Model.m_CalledRule> lstDelete = new List<DB_Talk.Model.m_CalledRule>(); string outNum = ""; if (d.Value != null) outNum = d.Value.vc_OutNumber == null ? "" : d.Value.vc_OutNumber; string outNumLocal = ""; //原有的引导码 if (d.Value != null) outNumLocal = d.Value.vc_OutNumberLocal == null ? "" : d.Value.vc_OutNumberLocal; if (d.Key.vc_OutNumberLocal!=null) { GetCalledRule(0, d.Key.PRIID, d.Key.vc_OutNumberLocal, outNumLocal, ref lstAdd, ref lstDelete, MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.市话); } if (d.Key.vc_OutNumber!=null) { GetCalledRule(0, d.Key.PRIID, d.Key.vc_OutNumber, outNum, ref lstAdd, ref lstDelete, MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途); } if (!Tools.MBoxOperate.CreatePRI(d.Key, d.Value, lstAdd, lstDelete)) { mes = d.Key.PRIID.ToString(); procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show("保存PRI中继【" + d.Key.PRIID + "】失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); break; } } } catch (Exception ex) { procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Loaddata(2); if (mes == "") { MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception ex) { procDlg.Hide(); CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-Hans"); //读本地配置文件 Global.Params.ConfigModel = (new Config.ConfigBLL()).ReadConfig(); //OpenDataBase(); Bestway.Windows.Forms.ProgressBarDialog procDlg = null; Form tempForm = new Form(); tempForm.FormBorderStyle = FormBorderStyle.None; tempForm.Size = new System.Drawing.Size(1, 1); tempForm.Show(); tempForm.Hide(); try { //单例模式 bool bCreatedNew; System.Threading.Mutex mutex = new System.Threading.Mutex(false, Application.ProductName, out bCreatedNew); if (!bCreatedNew) { CommControl.MessageBoxEx.MessageBoxEx.Show("程序已打开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //捕获程序级错误 Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionEventHandler); procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在加载配置文件..."); //读本地配置文件 Global.Params.ConfigModel = (new Config.ConfigBLL()).ReadConfig(); //数据库连接 procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在连接数据库,请稍等..."); if ( OpenDataBase() == false) { procDlg.Hide(); DialogResult dr = new DialogResult(); dr = (new Start.frmDatabaseConfig()).ShowDialog(); if (dr == DialogResult.Cancel) { procDlg.Dispose(); return; } } DB_Talk.DB.OleDbHelper.StateChanged += new System.Data.StateChangeEventHandler(OleDbHelper_StateChanged); procDlg.Hide(); #region 用户登录 procDlg.Hide(); NewfrmLogin frmLogin = new NewfrmLogin(); if (!frmLogin.Login()) { procDlg.Dispose(); return; } #endregion procDlg.Dispose(); Global.Params.frmMain = new NewFormMain(); Application.Run(Global.Params.frmMain); } catch (Exception ex) { CommControl.Tools.WriteLog.AppendErrorLog("Main:" + ex.Message + ex.StackTrace); //MessageBoxEx.Show(ex.Message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { MBoxSDK.ConfigSDK.MBOX_Dispose(); Global.Params.BoxHandle = 0; Environment.Exit(0); } }
public bool LoadBoxTest(string BoxIP) { //登录box Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); bool b = false; try { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在登录" + Global.Params.BOXNAME + "【" + BoxIP + "】,请稍等..."); int handle=MBoxSDK.ConfigSDK.MBOX_Login(BoxIP, "", "", ""); b = handle > 0 ? true : false; b = b && MBoxSDK.ConfigSDK.MBOX_IsDeviceOnline(BoxIP); if (b) { Global.Params.BoxHandle = handle; Global.Params.BoxIP = BoxIP; DB_Talk.Model.m_Box m = new DB_Talk.Model.m_Box(); if (_operate==0 && Tools.MBoxOperate.GetNodeInfo(handle, out m)) { txtMask.Text = m.vc_Mask; txtNetIP.Text = m.vc_NetIP; _mModel.vc_Mask = txtMask.Text.Trim(); _mModel.vc_NetIP = txtNetIP.Text.Trim(); } } } catch (Exception ex) { CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } return b; }
private void btnDel_Click(object sender, EventArgs e) { if (dgvList.CurrentRow != null) { bool delete = false; Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); try { DB_Talk.Model.m_CalledRule model = dgvList.CurrentRow.Tag as DB_Talk.Model.m_CalledRule; if (model != null) { CheckDeleteCondition(model); List<DB_Talk.Model.m_Member> lstMember=new DB_Talk.BLL.m_Member().GetModelList( string.Format(" i_Flag=0 and i_Number like '{0}%' and BoxID='{1}' ", model.vc_CalledNumber, Global.Params.BoxID)); // string.Format(" i_Flag=0 and i_Number like '{0}%' and BoxID='{1}' and i_IsDispatch!=1", model.vc_CalledNumber, Global.Params.BoxID)); if (lstMember.Count > 0) { CommControl.MessageBoxEx.MessageBoxEx.Show("用户号码中引用了此呼叫规则,不允许删除,要想删除,请先删除用户号码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在删除被叫规则【" + model.vc_CalledNumber + "】,请稍等..."); List<DB_Talk.Model.m_CalledRule> lstAdd = new List<DB_Talk.Model.m_CalledRule>(); List<DB_Talk.Model.m_CalledRule> lstDelete = new List<DB_Talk.Model.m_CalledRule>(); lstDelete.Add(model); DB_Talk.Model.m_SIPInterface modelSip = null; DB_Talk.Model.m_PRIInterface modelPri = null; if (model.i_SIPID > 0) modelSip = new DB_Talk.BLL.m_SIPInterface().GetModel( string.Format(" i_Flag=0 and SIPID='{0}' and BoxID='{1}'", model.i_SIPID, Global.Params.BoxID)); if (modelSip != null) { List<DB_Talk.Model.m_CalledRule> lstm = new DB_Talk.BLL.m_CalledRule().GetModelList( string.Format(" i_Flag=0 and i_SIPID='{0}' and BoxID='{1}' and ID!='{2}'", model.i_SIPID, Global.Params.BoxID, model.ID)); if (lstm.Count > 0) //只删除呼叫规则(还存在引用此中继的呼叫规则) { if (Tools.MBoxOperate.Delete_Rule(lstAdd, lstDelete)) { delete = true; if (model.i_CalledSubType == MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.市话.GetHashCode()) { modelSip.vc_OutNumberLocal = modelSip.vc_OutNumberLocal.Replace(model.vc_CalledNumber, "").Replace(",,",",").Trim(','); ; } else if (model.i_CalledSubType == MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途.GetHashCode()) { modelSip.vc_OutNumber = modelSip.vc_OutNumber.Replace(model.vc_CalledNumber, "").Replace(",,", ",").Trim(','); ; } new DB_Talk.BLL.m_SIPInterface().Update(modelSip); } } else //连中继一起删除 { if (Tools.MBoxOperate.DeleteSIP(modelSip, lstAdd, lstDelete) && new DB_Talk.BLL.m_SIPInterface().Delete(modelSip.ID)) { delete = true; } } } if (model.i_PRIID > 0) modelPri = new DB_Talk.BLL.m_PRIInterface().GetModel( string.Format(" i_Flag=0 and PRIID='{0}' and BoxID='{1}'", model.i_PRIID, Global.Params.BoxID)); if (modelPri != null) { List<DB_Talk.Model.m_CalledRule> lstm = new DB_Talk.BLL.m_CalledRule().GetModelList( string.Format(" i_Flag=0 and i_PRIID='{0}' and BoxID='{1}' and ID!='{2}'", model.i_PRIID, Global.Params.BoxID, model.ID)); if (lstm.Count > 0 && Tools.MBoxOperate.Delete_Rule(lstAdd, lstDelete)) //只删除呼叫规则 { if (model.i_CalledSubType == MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.市话.GetHashCode()) { //modelPri.vc_OutNumberLocal = modelPri.vc_OutNumberLocal.Replace(model.vc_CalledNumber, "").Replace(",,", ",").Trim(','); modelPri.vc_OutNumberLocal = ReplaceString(modelPri.vc_OutNumberLocal, model.vc_CalledNumber); } else if (model.i_CalledSubType == MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途.GetHashCode()) { // modelPri.vc_OutNumber = modelPri.vc_OutNumber.Replace(model.vc_CalledNumber, "").Replace(",,", ",").Trim(','); modelPri.vc_OutNumber = ReplaceString(modelPri.vc_OutNumber, model.vc_CalledNumber); } new DB_Talk.BLL.m_PRIInterface().Update(modelPri); delete = true; } else //连中继一起删除 { if (Tools.MBoxOperate.DeletePRI(modelPri, lstAdd, lstDelete) && new DB_Talk.BLL.m_PRIInterface().Delete(modelPri.ID)) { delete = true; } } } if (modelSip == null && modelPri == null) //删除的入局规则 { if (Tools.MBoxOperate.Delete_Rule(lstAdd, lstDelete)) { DB_Talk.Model.m_Box BoxModel = new DB_Talk.BLL.m_Box().GetModel(Global.Params.BoxID); if (BoxModel != null && BoxModel.vc_NumberHead!=null) { BoxModel.vc_NumberHead = BoxModel.vc_NumberHead.Replace(lstDelete[0].vc_CalledNumber, "").Replace(",,", ",").Trim(','); new DB_Talk.BLL.m_Box().Update(BoxModel); } delete = true; } } } else //还未添加 直接删除 delete = true; if (delete) { MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); procDlg.Hide(); Loaddata(); //dgvList.Rows.Remove(dgvList.CurrentRow); CommControl.MessageBoxEx.MessageBoxEx.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show("删除失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception ex) { procDlg.Hide(); CommControl.MessageBoxEx.MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); //CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } } else { CommControl.MessageBoxEx.MessageBoxEx.Show("请选择要删除的呼叫规则!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } }
public void LoadData(string strwhere) { Bestway.Windows.Forms.ProgressBarDialog procDlg = null; procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); try { procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在加载数据,请稍等..."); //cbHeader._checked = false; dgvList.Rows.Clear(); List<DB_Talk.Model.v_Member> lst = new List<DB_Talk.Model.v_Member>(); lst = new DB_Talk.BLL.v_Member().GetModelList("i_Flag=0 and BoxID='" + Global.Params.BoxID + "' and i_IsDispatch=0 " + strwhere); int i = 0; foreach (DB_Talk.Model.v_Member item in lst) { i++; string numberType = "", level, telType = "",strAuthority=""; if (item.NumberTypeID != null) numberType = ((CommControl.PublicEnums.EnumNumberType)item.NumberTypeID).ToString().Replace("_", "-"); if (item.i_TellType != null) telType = ((CommControl.PublicEnums.EnumTelType)item.i_TellType).ToString().Replace("G3","G"); ; if (item.LevelID == null) level = ""; else level = ((PublicEnums.EnumLevel)item.LevelID).ToString(); string paswType = ""; if (item.NumberTypeID != CommControl.PublicEnums.EnumNumberType.手机3G.GetHashCode()) paswType = item.i_NuPasswordType == 1 ? "固定" : "增加"; dgvList.Rows[dgvList.Rows.Add(item.ID," " + i, item.vc_Name, item.i_Number, item.deptName, paswType, item.i_NuPassword == 0 ? "" : item.i_NuPassword.ToString(), item.TellAuthority, item.TellType, //telType, //item.TellType, level, //item.LevelName, item.vc_UmtsImsi, item.i_UnCForwardNu, item.i_NoAnswerForward, item.i_BusyForward, item.i_PowerOffForward, item.i_AssociateNum1, item.i_AssociateNum2, item.vc_Memo, item.vc_IP )].Tag = item; } kryptonHeaderGroup1.ValuesSecondary.Heading = " 共" + dgvList.Rows.Count.ToString() + "个人员"; //Tools.AcrReportManage.Current.RefushDataset(); //loadReport(strwhere); loadReport(); InitListBoxName(); InitListBoxTel(); } catch(Exception ex) { CommControl.Tools.WriteLog.AppendErrorLog(ex); } finally { procDlg.Dispose(); } }
private void btnDel_Click(object sender, EventArgs e) { int lastIndex = 0; try { int count = dgvList.SelectedRows.Count; if (count >= 1) { lastIndex = dgvList.SelectedRows[0].Index; Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); DialogResult dr = DialogResult.No; string mesQuestion = ""; if (dgvList.SelectedRows.Count > 1) { mesQuestion = "确认要删除选中的 【" + dgvList.SelectedRows.Count + "】个用户吗? 如果用户已经被添加到组,组中也会被删除!"; dr = CommControl.MessageBoxEx.MessageBoxEx.Show(mesQuestion, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); } else if (dgvList.SelectedRows.Count == 1) { DB_Talk.Model.v_Member Model = (DB_Talk.Model.v_Member)dgvList.SelectedRows[0].Tag; // dgvList.CurrentRow.Tag; if (new DB_Talk.BLL.m_GroupMembers().Exists("MemberID='" + Model.ID + "'")) { mesQuestion = "用户【" + Model.vc_Name + "】已经被添加到组,如果删除用户,组中也会删除,确认删除吗?"; } else mesQuestion = "确认要删除 【" + Model.vc_Name + "】吗?"; dr = CommControl.MessageBoxEx.MessageBoxEx.Show(mesQuestion, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); } if (dr == DialogResult.OK) { StringBuilder mesOK = new StringBuilder(); StringBuilder mesMemberID = new StringBuilder(); StringBuilder mesNO = new StringBuilder(); int OK = 0, NO = 0; DateTime dtstart = System.DateTime.Now; foreach (DataGridViewRow item in dgvList.SelectedRows) { DB_Talk.Model.v_Member _mModel = (DB_Talk.Model.v_Member)item.Tag; // dgvList.CurrentRow.Tag; //2013-6-13 修改,在删除前判断,存在的号码才删除(因为有时候数据库里面有的号码,box里面没有,直接删除会返回false) bool IsExist = MBoxSDK.ConfigSDK.MBOX_IsSubscriberExist(Global.Params.BoxHandle,(_mModel.i_Number.Value)); CommControl.Tools.WriteLog.AppendLog("box添加号码", "删除号码操作,boxHandle:" + Global.Params.BoxHandle + ", 号码:" + Convert.ToInt32(_mModel.i_Number.ToString()) + ", 是否存在:" + IsExist); if (IsExist) { //System.Threading.Thread.Sleep(500); if (MBoxSDK.ConfigSDK.MBOX_DeleteSubscriber(Global.Params.BoxHandle, (_mModel.i_Number.Value))) { RemoveAssociateNum(_mModel); mesMemberID.Append("," + _mModel.ID); mesOK.Append("," + _mModel.vc_Name); OK++; CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID,CommControl.SystemLogBLL.EnumLogAction.Delete, "删除(box中存在)","删除了人员:" + _mModel.vc_Name, ""); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在删除用户【" + _mModel.vc_Name + "】,请稍等..."); } else { CommControl.Tools.WriteLog.AppendLog("box中存在,删除人员:" + _mModel.vc_Name + "失败"); CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Delete, "删除失败(box中存在)", "删除了人员:" + _mModel.vc_Name + "失败", ""); mesNO.Append("," + _mModel.vc_Name); NO++; } } else { RemoveAssociateNum(_mModel); mesMemberID.Append("," + _mModel.ID); mesOK.Append("," + _mModel.vc_Name); OK++; CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Delete, "删除(box中不存在)", "删除了人员:" + _mModel.vc_Name, ""); } } string mes = ""; bool bSave = false; if (OK > 0) { bSave = MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); //保存更改 mesMemberID.Remove(0, 1); mesOK.Remove(0, 1); } DateTime dtEnd = System.DateTime.Now; TimeSpan sp = dtEnd - dtstart; CommControl.Tools.WriteLog.AppendLog("删除" + dgvList.SelectedRows.Count + "个用户,时间:" + sp.TotalMilliseconds + "ms"); if (bSave) { if (new DB_Talk.BLL.m_Member().DeleteList(mesMemberID.ToString())) { //CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, // CommControl.SystemLogBLL.EnumLogAction.Delete, "删除", // "删除了人员:" + mesOK.ToString(), ""); if (mesOK.Length > 0 && OK > 0 && OK < 10) { mes = "删除【" + mesOK.ToString() + "】成功!"; } else { mes = "删除【" + OK + "】个用户成功!"; } LoadData(""); } else mes = "数据库删除【" + OK + "】个用户失败!"; } else if (OK != 0) { mes = "硬件保存配置失败!"; } if (mesNO.Length > 0) { mesNO.Remove(0, 1); mes = "从硬件中删除【" + mesNO.ToString() + "】失败!"; } procDlg.Dispose(); CommControl.MessageBoxEx.MessageBoxEx.Show(mes, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { CommControl.MessageBoxEx.MessageBoxEx.Show("请选择要删除的人员", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } catch{} LoadData(""); dgvList.ClearSelection(); if (lastIndex < dgvList.Rows.Count) { dgvList.Rows[lastIndex].Selected = true; dgvList.CurrentCell = dgvList[1, lastIndex]; } }
//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 AddMutiTel() { try { Bestway.Windows.Forms.ProgressBarDialog procDlg = new Bestway.Windows.Forms.ProgressBarDialog(); DB_Talk.Model.m_Member model = _mModel; int sucADD = 0; int errorAdd = 0; DateTime dtStart = System.DateTime.Now; for (int i = 0; i <= addCount; i++) { model.vc_Name = _mModel.i_Number.ToString(); procDlg.Show(Bestway.Windows.Forms.EnumDisplayType.LoadData, " 正在添加用户【" + model.vc_Name + "】,请稍等..."); if (_mModel.i_TellType.Value == PublicEnums.EnumTelType.广播.GetHashCode() && _BLL.GetModelList(string.Format(" i_flag=0 and vc_IP='{0}' and BoxID='{1}'", _mModel.vc_IP, _mModel.BoxID)).Count > 0) { CommControl.Tools.WriteLog.AppendLog("添加号码"+_mModel.i_Number+"失败,数据库已经存在IP:" + _mModel.vc_IP ); errorAdd++; } else //bool IsExist = MBoxSDK.ConfigSDK.MBOX_IsSubscriberExist(Global.Params.BoxHandle, Convert.ToInt32(_mModel.i_Number.ToString())); //if (!IsExist) { if (AddBase(model)) { //System.Threading.Thread.Sleep(500); if (_BLL.Add(_mModel) == 1) { UpdateAssociateNum(_mModel); CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Add, "添加", "添加了人员:" + _mModel.vc_Name, ""); sucADD++; } else { CommControl.Tools.WriteLog.AppendLog("数据库中添加人员:" + _mModel.vc_Name + "失败"); CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Add, "添加失败", "数据库添加人员:" + _mModel.vc_Name + "失败", ""); errorAdd++; } } else { CommControl.Tools.WriteLog.AppendLog("box中添加人员:" + _mModel.vc_Name + "失败"); CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Add, "添加失败", "box添加人员:" + _mModel.vc_Name + "失败", ""); errorAdd++; } } //else //{ // CommControl.Tools.WriteLog.AppendLog("box中已经存在,添加人员:" + _mModel.vc_Name + "失败"); // CommControl.SystemLogBLL.WriteLog(Global.Params.UserID, Global.Params.BoxID, CommControl.SystemLogBLL.EnumLogAction.Add, "添加失败", "box中已经存在,添加人员:" + _mModel.vc_Name + "失败", ""); // errorAdd++; //} model.i_Number = model.i_Number + 1; if (txtIP1.Enabled && !string.IsNullOrEmpty(model.vc_IP)) { string[] IP = model.vc_IP.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries); model.vc_IP = string.Format("{0}.{1}.{2}.{3}",IP[0],IP[1],IP[2] ,(int.Parse(IP[3]) + 1)); } if (model.i_TellType != CommControl.PublicEnums.EnumTelType.G3G手机.GetHashCode()) { if (_mModel.i_NuPasswordType == PublicEnums.EnumTelPasswordType.增加.GetHashCode()) { _mModel.i_NuPassword = (UInt64)model.i_Number; } } if (model.vc_UmtsImsi!="") model.vc_UmtsImsi = (Convert.ToUInt64(model.vc_UmtsImsi) + 1).ToString(); } procDlg.Dispose(); string mes = ""; if (sucADD > 0) mes = sucADD + "个用户添加成功 \r\n"; if (errorAdd > 0) mes += errorAdd + "个用户添加失败"; if (mes!="") { this.DialogResult = DialogResult.OK; this.Close(); MBoxSDK.ConfigSDK.MBOX_SaveHaveDoneCfg(Global.Params.BoxHandle); DateTime dtEnd = System.DateTime.Now; TimeSpan sp = dtEnd - dtStart; CommControl.Tools.WriteLog.AppendLog("添加" + (addCount+1).ToString() + "个用户,时间:" + sp.TotalMilliseconds + "ms"); CommControl.MessageBoxEx.MessageBoxEx.Show(mes, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { CommControl.MessageBoxEx.MessageBoxEx.Show("批量添加不成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } catch { CommControl.MessageBoxEx.MessageBoxEx.Show("批量添加失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }