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