/// <summary> /// Adds new user to specified DomainName. /// </summary> /// <param name="fullName">User full name.</param> /// <param name="userName">User login name.</param> /// <param name="password">User login password.</param> /// <param name="Description">User Description.</param> /// <param name="emails">User Emails addresses.</param> /// <param name="domainID">DomainName ID of DomainName where to add user.</param> /// <param name="mailboxSize">Maximum mailbox size.</param> /// <param name="enabled">Sepcifies if user is enabled.</param> /// <param name="allowRelay">Specifies if user can relay.</param> /// <param name="remPop3Accounts">Byte DataSet Pop3RemServSchema or null.</param> /// <returns></returns> public DataRow AddUser(string fullName,string userName,string password,string Description,string emails,string domainID,int mailboxSize,bool enabled,bool allowRelay,byte[] remPop3Accounts) { DataRow retVal = null; switch(m_DB_Type) { #region DB_Type.XML case DB_Type.XML: DataSet dsUsersCopy = dsUsers.Copy(); DataRow dr = dsUsersCopy.Tables["Users"].NewRow(); dr["UserID"] = Guid.NewGuid().ToString(); dr["DomainID"] = domainID; // dr["DomainName"] = domainName; dr["FULLNAME"] = fullName; dr["USERNAME"] = userName; dr["PASSWORD"] = password; dr["Description"] = Description; dr["Emails"] = emails; dr["Mailbox_Size"] = mailboxSize; dr["Enabled"] = enabled; dr["AllowRelay"] = allowRelay; if(remPop3Accounts != null){ dr["RemotePop3Servers"] = remPop3Accounts; } dsUsersCopy.Tables["Users"].Rows.Add(dr); dsUsersCopy.WriteXml(m_DataPath + "Users.xml",XmlWriteMode.IgnoreSchema); return dr; #endregion #region DB_Type.MSSQL case DB_Type.MSSQL: using(WSqlCommand sqlCmd = new WSqlCommand(m_ConStr,"lspr_AddUser")){ sqlCmd.AddParameter("@FullName" ,SqlDbType.NVarChar,fullName); sqlCmd.AddParameter("@UserName" ,SqlDbType.NVarChar,userName); sqlCmd.AddParameter("@Password" ,SqlDbType.NVarChar,password); sqlCmd.AddParameter("@Description" ,SqlDbType.NVarChar,Description); sqlCmd.AddParameter("@Emails" ,SqlDbType.NVarChar,emails); sqlCmd.AddParameter("@DomainID" ,SqlDbType.NVarChar,domainID); sqlCmd.AddParameter("@MailboxSize" ,SqlDbType.NVarChar,mailboxSize); sqlCmd.AddParameter("@Enabled" ,SqlDbType.Bit,enabled); sqlCmd.AddParameter("@AllowRelay" ,SqlDbType.Bit,allowRelay); sqlCmd.AddParameter("@RemotePop3Servers" ,SqlDbType.Image,remPop3Accounts); DataSet ds = sqlCmd.Execute(); ds.Tables[0].TableName = "Users"; if(ds.Tables["Users"].Rows.Count > 0){ return ds.Tables["Users"].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.AddUser(fullName,userName,password,Description,emails,domainID,mailboxSize,enabled,allowRelay,remPop3Accounts).Tables["Users"].Rows[0]; } #endregion } return retVal; }