示例#1
0
        public bool OnLeavePage(bool next)
        {
            if (next == false)
            {
                return(true);
            }
            try
            {
                AddToLog("Starting task...");


                // Perform the task...
                hMailServer.eDBtype dbType = Globals.GetDatabaseType(_state["ServerType"]);
                string serverName          = _state["ServerAddress"];
                string portString          = _state["ServerPort"];
                int    port = 0;
                int.TryParse(portString, out port);
                string databaseName = _state["DatabaseName"];

                string userName = _state["Username"];
                string passWord = _state["Password"];

                string serviceDependency = _state["ServiceDependency"];
                SetDependency(serviceDependency);

                if (_state["Authentication"] == "Windows")
                {
                    userName = "";
                    passWord = "";
                }

                hMailServer.Database database = Globals.GetApp().Database;

                if (_state["CreateNew"] == "Yes")
                {
                    AddToLog("Please wait while creating database...");
                    database.CreateExternalDatabase(dbType, serverName, port, databaseName, userName, passWord);
                    AddToLog("Database created.");
                }
                else
                {
                    AddToLog("Please wait while updating database settings...");
                    database.SetDefaultDatabase(dbType, serverName, port, databaseName, userName, passWord);
                    AddToLog("Settings updated.");
                }

                AddToLog("Restarting server...");
                Globals.GetApp().Reinitialize();
                AddToLog("Server restarted.");
                AddToLog("");
                AddToLog("Task completed.");
            }
            catch (Exception ex)
            {
                AddToLog(ex.Message);
                return(false);
            }

            return(true);
        }
示例#2
0
        private void EnableDisable()
        {
            textUsername.Enabled = radioUseServerAuthentication.Checked;
            textPassword.Enabled = radioUseServerAuthentication.Checked;

            hMailServer.eDBtype dbType = Globals.GetDatabaseType(_state["ServerType"]);
            textServerPort.Enabled = dbType != hMailServer.eDBtype.hDBTypeMSSQL;
        }
示例#3
0
        public static string GetDatabaseServerTypeName(hMailServer.eDBtype dbType)
        {
            switch (dbType)
            {
            case eDBtype.hDBTypeMSSQL:
                return("MSSQL");

            case eDBtype.hDBTypeMSSQLCE:
                return("MSSQL CE");

            case eDBtype.hDBTypeMySQL:
                return("MySQL");

            case eDBtype.hDBTypePostgreSQL:
                return("PostgreSQL");

            case eDBtype.hDBTypeUnknown:
                return("Unknown");
            }

            throw new Exception("Unknown administration level");
        }
示例#4
0
        public void OnShowPage(Dictionary <string, string> state)
        {
            _state = state;

            if (_state.ContainsKey("ServerAddress"))
            {
                textServerAddress.Text = _state["ServerAddress"];
            }
            if (_state.ContainsKey("ServerPort"))
            {
                textServerPort.Text = _state["ServerPort"];
            }
            if (_state.ContainsKey("DatabaseName"))
            {
                textDatabaseName.Text = _state["DatabaseName"];
            }

            if (_state.ContainsKey("Authentication"))
            {
                if (_state["Authentication"] == "Server")
                {
                    radioUseServerAuthentication.Checked = true;
                }
                else if (_state["Authentication"] == "Windows")
                {
                    radioUseWindowsAuthentication.Checked = true;
                }
            }

            if (_state.ContainsKey("Username"))
            {
                textUsername.Text = _state["Username"];
            }

            if (_state.ContainsKey("Password"))
            {
                textPassword.Text = _state["Password"];
            }

            hMailServer.eDBtype dbType = Globals.GetDatabaseType(_state["ServerType"]);
            switch (dbType)
            {
            case hMailServer.eDBtype.hDBTypeMySQL:
                radioUseWindowsAuthentication.Enabled = false;
                radioUseServerAuthentication.Checked  = true;
                break;

            case hMailServer.eDBtype.hDBTypePostgreSQL:
                radioUseWindowsAuthentication.Enabled = false;
                radioUseServerAuthentication.Checked  = true;
                break;

            case hMailServer.eDBtype.hDBTypeMSSQL:
                radioUseWindowsAuthentication.Enabled = true;
                textServerPort.Text = "";
                break;
            }

            if (textServerPort.Text.Length == 0 ||
                textServerPort.Number == 3306 ||
                textServerPort.Number == 5432)
            {
                switch (dbType)
                {
                case hMailServer.eDBtype.hDBTypeMySQL:
                    textServerPort.Number = 3306;
                    break;

                case hMailServer.eDBtype.hDBTypePostgreSQL:
                    textServerPort.Number = 5432;
                    break;
                }
            }

            EnableDisable();
        }