/// <summary> /// Deletes specified DomainName. /// </summary> /// <param name="domainID"></param> /// <returns>Returns true if DomainName deleted successfully.</returns> public bool DeleteDomain(string domainID) { try { switch(m_DB_Type) { #region DB_Type.XML case DB_Type.XML: // 1) delete specified DomainName users // 2) delete specified DomainName aliases // 3) delete specified DomainName routing // 4) delete specified DomainName DataSet dsUsersCopy = dsUsers.Copy(); DataSet dsAliasesCopy = dsAliases.Copy(); DataSet dsRoutingCopy = dsRouting.Copy(); DataSet dsDomainsCopy = dsDomains.Copy(); //---- Delete specified DomainName users ----------------------------// using(DataView dv = new DataView(dsUsersCopy.Tables["Users"])){ dv.RowFilter = "DomainID='" + domainID + "'"; if(dv.Count > 0){ foreach(DataRowView drv in dv){ drv.Row.Delete(); } } } //----------------------------------------------------------------// //---- Delete specified DomainName aliases ---------------------------// using(DataView dvA = new DataView(dsAliasesCopy.Tables["Aliases"])){ dvA.RowFilter = "DomainID='" + domainID + "'"; if(dvA.Count > 0){ foreach(DataRowView drv in dvA){ drv.Row.Delete(); } } } //----------------------------------------------------------------// //---- Delete specified DomainName routing ---------------------------// using(DataView dvR = new DataView(dsRoutingCopy.Tables["Routing"])){ dvR.RowFilter = "DomainID='" + domainID + "'"; if(dvR.Count > 0){ foreach(DataRowView drv in dvR){ drv.Row.Delete(); } } } //----------------------------------------------------------------// //---- Delete DomainName itself --------------------------------------// using(DataView dv = new DataView(dsDomainsCopy.Tables["Domains"])){ dv.RowFilter = "DomainID='" + domainID + "'"; if(dv.Count > 0){ dsDomainsCopy.Tables["Domains"].Rows.Remove(dv[0].Row); } } //----------------------------------------------------------------// dsDomainsCopy.WriteXml(m_DataPath + "Domains.xml",XmlWriteMode.IgnoreSchema); dsUsersCopy.WriteXml (m_DataPath + "Users.xml" ,XmlWriteMode.IgnoreSchema); dsAliasesCopy.WriteXml(m_DataPath + "Aliases.xml",XmlWriteMode.IgnoreSchema); dsRoutingCopy.WriteXml(m_DataPath + "Routing.xml",XmlWriteMode.IgnoreSchema); LoadUsers(); LoadAliases(); LoadRouting(); return true; #endregion #region DB_Type.MSSQL case DB_Type.MSSQL: using(WSqlCommand sqlCmd = new WSqlCommand(m_ConStr,"lspr_DeleteDomain")){ sqlCmd.AddParameter("@DomainID" ,SqlDbType.NVarChar,domainID); DataSet ds = sqlCmd.Execute(); return true; } #endregion #region DB_Type.WebServices case DB_Type.WebServices: using(RemoteAdmin eng = new RemoteAdmin()){ _Core.InitWebService(m_WebServicesUrl,m_WebServicesPwd,m_WebServicesUser,eng); eng.DeleteDomain(domainID); return true; } #endregion } } catch(Exception x) { // System.Windows.Forms.MessageBox.Show(x.Message); } return false; }