/// <summary> /// Adds new Emails route. /// </summary> /// <param name="pattern">Match pattern.</param> /// <param name="mailbox">Mailbox to route.</param> /// <param name="Description">Description.</param> /// <param name="domainID">DomainName ID.</param> /// <returns></returns> public DataRow AddRoute(string pattern,string mailbox,string Description,string domainID) { DataRow retVal = null; switch(m_DB_Type) { #region DB_Type.XML case DB_Type.XML: //-- Find domainName from domainID ---------------------------// string domainName = ""; foreach(DataRowView drV in this.GetDomainList()){ if(drV["DomainID"].ToString().ToUpper() == domainID.ToUpper()){ domainName = drV["DomainName"].ToString(); } } DataSet dsRoutingCopy = dsRouting.Copy(); DataRow dr = dsRoutingCopy.Tables["Routing"].NewRow(); dr["RouteID"] = Guid.NewGuid().ToString(); dr["Pattern"] = pattern; dr["Mailbox"] = mailbox; dr["Description"] = Description; dr["DomainID"] = domainID; dr["DomainName"] = domainName; dsRoutingCopy.Tables["Routing"].Rows.Add(dr); dsRoutingCopy.Tables["Routing"].Columns.Remove("Length"); dsRoutingCopy.WriteXml(m_DataPath + "Routing.xml",XmlWriteMode.IgnoreSchema); if(!dsRoutingCopy.Tables["Routing"].Columns.Contains("Length")){ dsRoutingCopy.Tables["Routing"].Columns.Add("Length",Type.GetType("System.String"),"Len(Pattern)"); } retVal = dr; break; #endregion #region DB_Type.MSSQL case DB_Type.MSSQL: using(WSqlCommand sqlCmd = new WSqlCommand(m_ConStr,"lspr_AddRoute")){ sqlCmd.AddParameter("@Pattern" ,SqlDbType.NVarChar ,pattern); sqlCmd.AddParameter("@Mailbox" ,SqlDbType.NVarChar ,mailbox); sqlCmd.AddParameter("@Description" ,SqlDbType.NVarChar ,Description); sqlCmd.AddParameter("@DomainID" ,SqlDbType.UniqueIdentifier ,domainID); DataSet ds = sqlCmd.Execute(); ds.Tables[0].TableName = "Routing"; if(ds.Tables["Routing"].Rows.Count > 0){ return ds.Tables["Routing"].Rows[0]; } } break; #endregion #region DB_Type.WebServices case DB_Type.WebServices: using(RemoteAdmin eng = new RemoteAdmin()){ _Core.InitWebService(m_WebServicesUrl,m_WebServicesPwd,m_WebServicesUser,eng); return eng.AddRoute(pattern,mailbox,Description,domainID).Tables["Routing"].Rows[0]; } #endregion } return retVal; }