Ejemplo n.º 1
0
        public frmCalledRule(DB_Talk.Model.m_CalledRule m, int operate)
        {
            InitializeComponent();
           
            _operate = operate;
            if (operate == 0)
            {
                this.FormTitle = "添加";
                btnOK.Text = "添加";
               
            }
            else
            {
                _mModel = m;
                this.FormTitle = "编辑";
                btnOK.Text = "编辑";
               // ShowModel();
            }

            this.Load += new EventHandler(frmCalledRule_Load);
           
            
        }
Ejemplo n.º 2
0
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public List<DB_Talk.Model.m_CalledRule> DataTableToList(DataSet ds)
		{
			List<DB_Talk.Model.m_CalledRule> modelList = new List<DB_Talk.Model.m_CalledRule>();
			if (ds == null) return modelList;
            DataTable dt = ds.Tables[0];
			int rowsCount = dt.Rows.Count;
			if (rowsCount > 0)
			{
				DB_Talk.Model.m_CalledRule model;
				for (int n = 0; n < rowsCount; n++)
				{
				  model = new DB_Talk.Model.m_CalledRule();	
                  if(dt.Rows[n]["ID"]!=null && dt.Rows[n]["ID"].ToString()!="")
				  {
				      model.ID=int.Parse(dt.Rows[n]["ID"].ToString());
				  }
				  if(dt.Rows[n]["CalledID"]!=null && dt.Rows[n]["CalledID"].ToString()!="")
				  {
				      model.CalledID=int.Parse(dt.Rows[n]["CalledID"].ToString());
				  }
				  if(dt.Rows[n]["BoxID"]!=null && dt.Rows[n]["BoxID"].ToString()!="")
				  {
				      model.BoxID=int.Parse(dt.Rows[n]["BoxID"].ToString());
				  }
				  if(dt.Rows[n]["vc_Code"]!=null && dt.Rows[n]["vc_Code"].ToString()!="")
				  {
				     model.vc_Code= dt.Rows[n]["vc_Code"].ToString();
				  }
				  if(dt.Rows[n]["vc_Name"]!=null && dt.Rows[n]["vc_Name"].ToString()!="")
				  {
				     model.vc_Name= dt.Rows[n]["vc_Name"].ToString();
				  }
				  if(dt.Rows[n]["CallingOriID"]!=null && dt.Rows[n]["CallingOriID"].ToString()!="")
				  {
				      model.CallingOriID=int.Parse(dt.Rows[n]["CallingOriID"].ToString());
				  }
				  if(dt.Rows[n]["vc_CalledNumber"]!=null && dt.Rows[n]["vc_CalledNumber"].ToString()!="")
				  {
				     model.vc_CalledNumber= dt.Rows[n]["vc_CalledNumber"].ToString();
				  }
				  if(dt.Rows[n]["i_CalledType"]!=null && dt.Rows[n]["i_CalledType"].ToString()!="")
				  {
				      model.i_CalledType=int.Parse(dt.Rows[n]["i_CalledType"].ToString());
				  }
				  if(dt.Rows[n]["i_CalledSubType"]!=null && dt.Rows[n]["i_CalledSubType"].ToString()!="")
				  {
				      model.i_CalledSubType=int.Parse(dt.Rows[n]["i_CalledSubType"].ToString());
				  }
				  if(dt.Rows[n]["DestRouteID"]!=null && dt.Rows[n]["DestRouteID"].ToString()!="")
				  {
				      model.DestRouteID=int.Parse(dt.Rows[n]["DestRouteID"].ToString());
				  }
				  if(dt.Rows[n]["i_CalledChangeType"]!=null && dt.Rows[n]["i_CalledChangeType"].ToString()!="")
				  {
				      model.i_CalledChangeType=int.Parse(dt.Rows[n]["i_CalledChangeType"].ToString());
				  }
				  if(dt.Rows[n]["i_CalledChangePosition"]!=null && dt.Rows[n]["i_CalledChangePosition"].ToString()!="")
				  {
				      model.i_CalledChangePosition=int.Parse(dt.Rows[n]["i_CalledChangePosition"].ToString());
				  }
				  if(dt.Rows[n]["i_CalledChangeLength"]!=null && dt.Rows[n]["i_CalledChangeLength"].ToString()!="")
				  {
				      model.i_CalledChangeLength=int.Parse(dt.Rows[n]["i_CalledChangeLength"].ToString());
				  }
				  if(dt.Rows[n]["vc_CalledChangeTarget"]!=null && dt.Rows[n]["vc_CalledChangeTarget"].ToString()!="")
				  {
				     model.vc_CalledChangeTarget= dt.Rows[n]["vc_CalledChangeTarget"].ToString();
				  }
				  if(dt.Rows[n]["vc_Memo"]!=null && dt.Rows[n]["vc_Memo"].ToString()!="")
				  {
				     model.vc_Memo= dt.Rows[n]["vc_Memo"].ToString();
				  }
				  if(dt.Rows[n]["i_SIPID"]!=null && dt.Rows[n]["i_SIPID"].ToString()!="")
				  {
				      model.i_SIPID=int.Parse(dt.Rows[n]["i_SIPID"].ToString());
				  }
				  if(dt.Rows[n]["i_PRIID"]!=null && dt.Rows[n]["i_PRIID"].ToString()!="")
				  {
				      model.i_PRIID=int.Parse(dt.Rows[n]["i_PRIID"].ToString());
				  }
				  if(dt.Rows[n]["i_Flag"]!=null && dt.Rows[n]["i_Flag"].ToString()!="")
				  {
				      model.i_Flag=int.Parse(dt.Rows[n]["i_Flag"].ToString());
				  }
				   modelList.Add(model);
				
				}
			}
			return modelList;
		}
Ejemplo n.º 3
0
		/// <summary>
		/// 根据条件得到一个对象实体
		/// </summary>
		public DB_Talk.Model.m_CalledRule GetModel(string strWhere)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("  select top 1 ");
			strSql.Append("  ID, CalledID, BoxID, vc_Code, vc_Name, CallingOriID, vc_CalledNumber, i_CalledType, i_CalledSubType, DestRouteID, i_CalledChangeType, i_CalledChangePosition, i_CalledChangeLength, vc_CalledChangeTarget, vc_Memo, i_SIPID, i_PRIID, i_Flag  ");			
			strSql.Append("  from m_CalledRule ");
			if(strWhere.Trim()!="")
			{
				strSql.Append(" where "+strWhere);
			}
			DB_Talk.Model.m_CalledRule model=new DB_Talk.Model.m_CalledRule();
			DataSet ds=GetDataSet(strSql.ToString());
			if(ds!=null && ds.Tables[0].Rows.Count>0)
			{
                model=DataTableToList(ds)[0];						
				return model;
			}
			else
			{
				return null;
			}
		}
Ejemplo n.º 4
0
        //获取呼叫规则
        private void GetCalledRule(int SIPID,int PRIID, string strNewOutNumber, string strOldOutNumber, 
            ref  List<DB_Talk.Model.m_CalledRule> lstAdd, ref  List<DB_Talk.Model.m_CalledRule> lstDelete,MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE CalledSubType)
        {
            //出局号码被叫规则
            string mes = "";
            string[] strArrayAdd = strNewOutNumber.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
             //lstAdd = new List<DB_Talk.Model.m_CalledRule>();
            //lstDelete = new List<DB_Talk.Model.m_CalledRule>();
            foreach (string str in strArrayAdd)  //出局规则
            {
                strOldOutNumber=strOldOutNumber.Replace(str, "");  //从旧的引导码中除去新的引导码
                DB_Talk.Model.m_CalledRule m = new DB_Talk.Model.m_CalledRule();
                m.CalledID = 1;
                m.CallingOriID = 1;
                m.vc_CalledNumber = (str);
                int num = 0;
                if (!int.TryParse(str, out num) || num<0 || num > 99999)
                {
                    throw new Exception("号码前缀必须是0~99999之间的数字");
                }
                m.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.出局.GetHashCode();  //service
                m.i_CalledSubType = CalledSubType.GetHashCode();// MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途.GetHashCode();
                m.DestRouteID = 0;
                m.i_CalledChangeType = MBoxSDK.ConfigSDK.CALLED_RULE_TransAct.DELETE.GetHashCode();
                m.i_CalledChangePosition = 0;
                m.i_CalledChangeLength = str.Length;
                m.vc_CalledChangeTarget = "";
                m.i_SIPID = SIPID;
                m.i_PRIID = PRIID;
                m.BoxID = Global.Params.BoxID;
                //if (!new Tools.MBoxOperate().IsExitCalledRule(m)) lst.Add(m);
                //if (new Tools.MBoxOperate().IsExitCalledRule(m, out mes) && mes != "")
                //{
                //    throw (new Exception("已经存在被叫号码为【" + mes + "】的呼叫规则!"));
                //}
                List<DB_Talk.Model.m_CalledRule> lstTemp = new DB_Talk.BLL.m_CalledRule().GetModelList(
                            string.Format(" i_Flag=0 and vc_CalledNumber='{0}' and BoxID='{1}'", 
                            m.vc_CalledNumber, Global.Params.BoxID));
                if (lstTemp.Count > 0)
                { 
                    if(m.Equals(lstTemp[0]))  //完全相同
                    {

                    }
                    else if (m.vc_CalledNumber == lstTemp[0].vc_CalledNumber)  //引导码相同
                    {
                        throw (new Exception("已经存在被叫号码为【" + m.vc_CalledNumber + "】的呼叫规则!"));
                    }
                } 
                else
                    lstAdd.Add(m);
            }

            string[] strArrayDelete = strOldOutNumber.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string str in strArrayDelete)  //出局规则
            {
                DB_Talk.Model.m_CalledRule m = new DB_Talk.Model.m_CalledRule();
                m.CalledID = 1;
                m.CallingOriID = 1;
                m.vc_CalledNumber = (str);
                m.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.出局.GetHashCode();  //service
                m.i_CalledSubType = CalledSubType.GetHashCode();// MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.长途.GetHashCode();
                m.DestRouteID = 0;
                m.i_CalledChangeType = MBoxSDK.ConfigSDK.CALLED_RULE_TransAct.DELETE.GetHashCode();
                m.i_CalledChangePosition = 0;
                m.i_CalledChangeLength = str.Length;
                m.vc_CalledChangeTarget = "";
                m.BoxID = Global.Params.BoxID;

                lstDelete.Add(m);
            }

        }
Ejemplo n.º 5
0
        //创建基础的 呼叫源,路由规则,呼叫源规则,*000的被叫规则
        public static bool CreateCalinglSourceRule()
        {
            
            //创建呼叫源,1,任何类型,任何类型
            DB_Talk.Model.m_CallingSource modelCs = new DB_Talk.Model.m_CallingSource();
            modelCs.ID = 1;
            modelCs.i_MainType = 6;   //任何类型
            modelCs.i_SubType = 1;    //任何类型
            modelCs.BoxID=Global.Params.BoxID;
            List<DB_Talk.Model.m_CallingSource> list = new DB_Talk.BLL.m_CallingSource().GetModelList(
                string.Format(" i_Flag=0 and ID='{0}' and i_MainType='{1}' and i_SubType='{2}' and BoxID='{3}'",
                               modelCs.ID, modelCs.i_MainType, modelCs.i_SubType, modelCs.BoxID));
            if (list.Count == 0) //不存在才创建
            {
                if (!CreateCallSource(modelCs)) 
                    return false;
            }
          

            //创建路由规则0,0,0
            DB_Talk.Model.m_RouteRule modelRRule = new DB_Talk.Model.m_RouteRule();
            modelRRule.ID = 0;
            modelRRule.OriRouteID = 0;
            modelRRule.DestRouteID = 0;
            modelRRule.BoxID = Global.Params.BoxID;
            List<DB_Talk.Model.m_RouteRule> listModelRRule = new DB_Talk.BLL.m_RouteRule().GetModelList(
               string.Format(" i_Flag=0 and ID='{0}' and OriRouteID='{1}' and DestRouteID='{2}' and BoxID='{3}'",
                              modelRRule.ID, modelRRule.OriRouteID, modelRRule.DestRouteID, modelRRule.BoxID));
            if (listModelRRule.Count == 0)
            {
                if (!CreateRoutingRule(modelRRule))
                    return false;
            }
           
            //创建呼叫源规则,1,不限,0,1,0
            DB_Talk.Model.m_CalinglSourceRule CalinglSourceRule = new DB_Talk.Model.m_CalinglSourceRule();
            CalinglSourceRule.CallingOrigID = 1;  //呼叫源索引1
            CalinglSourceRule.i_ServerType = 1;   //服务类型不限
            CalinglSourceRule.i_MinReLength = 0;   //最小收号长度0
            CalinglSourceRule.CalledRuleID = 1;   //被叫分析规则索引1
            CalinglSourceRule.OriRouteID = 0;     //目的路由索引
            CalinglSourceRule.BoxID = Global.Params.BoxID;
            List<DB_Talk.Model.m_CalinglSourceRule> listCallingSource = new DB_Talk.BLL.m_CalinglSourceRule().GetModelList(
              string.Format(" i_Flag=0 and CallingOrigID='{0}' and CalledRuleID='{1}' and i_ServerType='{2}' and OriRouteID='{3}' and BoxID='{4}'",
              CalinglSourceRule.CallingOrigID, CalinglSourceRule.CalledRuleID,CalinglSourceRule.i_ServerType, CalinglSourceRule.OriRouteID, CalinglSourceRule.BoxID));
            if (listCallingSource.Count == 0)
            {
                if (!CreateCallSourceRule(CalinglSourceRule))
                    return false;
            }
           


            //设置默认的被叫规则

            DB_Talk.Model.m_CalledRule CalledRule = new DB_Talk.Model.m_CalledRule();
            CalledRule.BoxID = Global.Params.BoxID;
            CalledRule.CalledID = 1;
            CalledRule.CallingOriID = 1;
            CalledRule.DestRouteID = 0;
            CalledRule.vc_CalledNumber = "*000";
            CalledRule.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.SERVICE.GetHashCode();
            CalledRule.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.话务员.GetHashCode();

            List<DB_Talk.Model.m_CalledRule> listCall = new DB_Talk.BLL.m_CalledRule().GetModelList(
                 string.Format(" i_Flag=0 and vc_CalledNumber='{0}' and BoxID='{1}'",
                        CalledRule.vc_CalledNumber, CalledRule.BoxID));
            if (listCall.Count == 0)
            {
                if (CreateCalledRule(CalledRule))
                    new DB_Talk.BLL.m_CalledRule().Add(CalledRule);
                else
                    return false;
            }
            //默认400的规则

            DB_Talk.Model.m_CalledRule CalledRule400 = new DB_Talk.Model.m_CalledRule();
            CalledRule400.BoxID = Global.Params.BoxID;
            CalledRule400.CalledID = 1;
            CalledRule400.CallingOriID = 1;
            CalledRule400.DestRouteID = 0;
            CalledRule400.vc_CalledNumber = "400";
            CalledRule400.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.SERVICE.GetHashCode();
            CalledRule400.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.FD.GetHashCode();
            CalledRule400.i_CalledChangeType = 2;
            CalledRule400.i_CalledChangeLength = 3;
            List<DB_Talk.Model.m_CalledRule> listCall400 = new DB_Talk.BLL.m_CalledRule().GetModelList(
                 string.Format(" i_Flag=0 and vc_CalledNumber='{0}' and BoxID='{1}'",
                        CalledRule400.vc_CalledNumber, CalledRule400.BoxID));
            if (listCall400.Count == 0)
            {
                if (CreateCalledRule(CalledRule400))
                    new DB_Talk.BLL.m_CalledRule().Add(CalledRule400);
                else
                    return false;
            }  

            return true;
        }
Ejemplo n.º 6
0
 //查询被叫分析规则
 private static bool QueryCalledRule(out List<DB_Talk.Model.m_CalledRule> lst)
 {
     lst = new List<DB_Talk.Model.m_CalledRule>();
     try
     {
         bool b = false;
         byte[] byteArray = new byte[ArraySizeBig];
         int len = ArraySizeBig;
         b = MBoxSDK.ConfigSDK.MBOX_GetCalledNumAnalysisRule(Global.Params.BoxHandle, byteArray, (uint)byteArray.Length, ref len);
         //if (b)
         {
             string strR = System.Text.Encoding.Default.GetString(byteArray);
             strR = strR.Replace("\0", "");
             string[] strArrayS = strR.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
             for (int i = 0; i < strArrayS.Length; i++)
             {
                 DB_Talk.Model.m_CalledRule m = new DB_Talk.Model.m_CalledRule();
                 //string[] strArrayS2 = strArrayS[i].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                 string[] strArrayS2 = strArrayS[i].Split(',');  //目标字符串是空的,所有不能去掉空串
                 m.CalledID = (int.Parse(strArrayS2[0]));
                 m.CallingOriID = (int.Parse(strArrayS2[1]));
                 m.vc_CalledNumber = ((strArrayS2[2]));
                 m.i_CalledType = (int.Parse(strArrayS2[3]));
                 m.i_CalledSubType = (int.Parse(strArrayS2[4]));
                 m.DestRouteID = (int.Parse(strArrayS2[5]));
                 m.i_CalledChangeType = (int.Parse(strArrayS2[6]));
                 m.i_CalledChangePosition = (int.Parse(strArrayS2[7]));
                 m.i_CalledChangeLength = (int.Parse(strArrayS2[8]));
                 m.vc_CalledChangeTarget = strArrayS2[9];
                 m.BoxID = Global.Params.BoxID;
                 lst.Add(m);
             }
         }
         return b;
     }
     catch(Exception ex)
     {
         CommControl.Tools.WriteLog.AppendErrorLog(ex);
         return false;
     }
 }
        public List<DB_Talk.Model.m_CalledRule> getLstCalledRule()
        {
            List<DB_Talk.Model.m_CalledRule> lst = new List<DB_Talk.Model.m_CalledRule>();
            DB_Talk.Model.m_CalledRule model = new DB_Talk.Model.m_CalledRule(); //调度呼叫规则
            model.CalledID = 1;
            model.CallingOriID = 1;
            model.vc_CalledNumber = (txtDispatchCenter.Text.Trim());
            model.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.SERVICE.GetHashCode();  //service
            model.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.话务员.GetHashCode();
            model.DestRouteID = 0;
            model.i_CalledChangeType = MBoxSDK.ConfigSDK.CALLED_RULE_TransAct.NONE.GetHashCode();
            model.i_CalledChangePosition = 0;
            model.i_CalledChangeLength = 0;
            model.vc_CalledChangeTarget = "";
            model.BoxID = Global.Params.BoxID;
            string mes = "";
            if (new Tools.MBoxOperate().IsExitCalledRule(model, out mes))
            {
                if (mes != "")
                    throw (new Exception("已经存在被叫号码为【" + mes + "】的呼叫规则!"));
                else
                    OldlstCalledRule.Remove(model);
            }
            else
                lst.Add(model);

            DB_Talk.Model.m_CalledRule mEm = new DB_Talk.Model.m_CalledRule(); //紧急呼叫规则
            mEm.CalledID = 1;
            mEm.CallingOriID = 1;
            mEm.vc_CalledNumber = (TxtEmergencyNumber.Text.Trim());//int.Parse(EmergencyNumber);// 
            mEm.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.SERVICE.GetHashCode();  //service
            mEm.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.紧急呼叫.GetHashCode();
            mEm.DestRouteID = 0;
            mEm.i_CalledChangeType = MBoxSDK.ConfigSDK.CALLED_RULE_TransAct.NONE.GetHashCode();
            mEm.i_CalledChangePosition = 0;
            mEm.i_CalledChangeLength = 0;
            mEm.vc_CalledChangeTarget = "";
            mEm.BoxID = Global.Params.BoxID;
            //if (!new Tools.MBoxOperate().IsExitCalledRule(mEm)) lst.Add(mEm);
            if (new Tools.MBoxOperate().IsExitCalledRule(mEm, out mes) )
            {
                if (mes != "")
                    throw (new Exception("已经存在被叫号码为【" + mes + "】的呼叫规则!"));
                else
                    OldlstCalledRule.Remove(mEm);
            }
            else
                lst.Add(mEm);


            //入局号码被叫规则
            string strNums = chkNumHead.EditValue.ToString().Trim().Replace(" ","");
            string[] strArray = strNums.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string str in strArray)  //入局规则
            {
                DB_Talk.Model.m_CalledRule m = new DB_Talk.Model.m_CalledRule();
                m.CalledID = 1;
                m.CallingOriID = 1;
                m.vc_CalledNumber = str.Trim();
                m.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.入局.GetHashCode();  //service
                m.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.SUB.GetHashCode();
                m.DestRouteID = 0;
                m.i_CalledChangeType = MBoxSDK.ConfigSDK.CALLED_RULE_TransAct.NONE.GetHashCode();
                m.i_CalledChangePosition = 0;
                m.i_CalledChangeLength = 0;
                m.vc_CalledChangeTarget = "";
                m.BoxID = Global.Params.BoxID;
                //if (!new Tools.MBoxOperate().IsExitCalledRule(m)) lst.Add(m);
                if (new Tools.MBoxOperate().IsExitCalledRule(m, out mes))
                {
                    if (mes != "")
                        throw (new Exception("已经存在被叫号码为【" + mes + "】的呼叫规则!"));
                    else
                        OldlstCalledRule.Remove(m);
                  
                }
                else
                    lst.Add(m);
            }
            return lst;
        }