public DbManager CreateDbManager()
        {
            DbManager       newManager = null;
            WebmailSettings settings   = (new WebMailSettingsCreator()).CreateWebMailSettings();

            switch (settings.DbType)
            {
            case SupportedDatabase.PostgreSql:
                newManager = new PostgreSqlDbManager();
                break;

            case SupportedDatabase.MsAccess:
                newManager = new MsAccessDbManager();
                break;

            case SupportedDatabase.MySql:
                newManager = new MySqlDbManager();
                break;

            default:
                newManager = new MsSqlDbManager();
                break;
            }
            return(newManager);
        }
        public DbManager CreateDbManager(string dataPath)
        {
            DbManager       newManager = null;
            WebmailSettings settings   = new WebmailSettings().CreateInstance(dataPath);

            switch (settings.DbType)
            {
            case SupportedDatabase.MsAccess:
                newManager = new MsAccessDbManager();
                break;

            case SupportedDatabase.MySql:
                newManager = new MySqlDbManager();
                break;

            case SupportedDatabase.PostgreSql:
                newManager = new PostgreSqlDbManager();
                break;

            default:
                newManager = new MsSqlDbManager();
                break;
            }
            return(newManager);
        }
示例#3
0
    protected void create_database_Click(object sender, System.EventArgs e)
    {
        Session["TrySqlPassword"] = txtSqlPassword.Text;
        txtSqlPassword.Attributes.Add("Value", txtSqlPassword.Text);

        if (intDbTypeMsAccess.Checked)
        {
            return;
        }

        Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder();

        DbManager         dbMan            = null;
        string            connectionString = string.Empty;
        SupportedDatabase dbType           = SupportedDatabase.MsSqlServer;

        if (intDbTypeMsAccess.Checked)
        {
            dbMan  = new MsAccessDbManager();
            dbType = SupportedDatabase.MsAccess;
        }
        else if (intDbTypeMySql.Checked)
        {
            dbMan  = new MySqlDbManager();
            dbType = SupportedDatabase.MySql;
        }
        else
        {
            dbMan  = new MsSqlDbManager();
            dbType = SupportedDatabase.MsSqlServer;
        }

        string dsn = txtSqlDsn.Value;

        if (!useDSN.Checked)
        {
            dsn = string.Empty;
        }

        connectionString = DbManager.CreateConnectionString(useCS.Checked, odbcConnectionString.Value,
                                                            dsn, dbType, txtAccessFile.Value, txtSqlLogin.Value,
                                                            txtSqlPassword.Text, null, txtSqlSrc.Value);
        try
        {
            dbMan.Connect(connectionString);
            dbMan.CreateDatabase(txtSqlName.Value);
            _errorMessageCreateDB = @"<br /><font color=""green"">Database create successfily.</font>";
        }
        catch (WebMailDatabaseException error)
        {
            Log.WriteException(error);
            _errorMessageCreateDB = @"<br /><font color=""red"">" + error.Message + "</font>";
        }
        finally
        {
            dbMan.Disconnect();
        }
    }
示例#4
0
        private static DbManager CreateDbManager(GenTablesOptions options)
        {
            switch (options.ConnectionType)
            {
            case ConnectionType.MsSql:
                return(MsSqlDbManager.Create(options));

            case ConnectionType.MySql:
                return(MySqlDbManager.Create(options.ConnectionString));

            case ConnectionType.PgSql:
                return(PgSqlDbManager.Create(options.ConnectionString));

            default:
                throw new SqExpressCodeGenException("Unknown connection type: " + options.ConnectionType);
            }
        }
    protected void test_connection_Click(object sender, System.EventArgs e)
    {
        Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder();

        DbManager         dbMan            = null;
        string            connectionString = string.Empty;
        SupportedDatabase dbType           = SupportedDatabase.MsSqlServer;

        if (intDbTypeMsAccess.Checked)
        {
            dbMan  = new MsAccessDbManager();
            dbType = SupportedDatabase.MsAccess;
        }
        else if (intDbTypeMySql.Checked)
        {
            dbMan  = new MySqlDbManager();
            dbType = SupportedDatabase.MySql;
        }
        else
        {
            dbMan  = new MsSqlDbManager();
            dbType = SupportedDatabase.MsSqlServer;
        }

        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        txtSqlPassword.Text        = Request[txtSqlPassword.UniqueID] ?? settings.DbPassword;
        txtSqlLogin.Value          = Request[txtSqlLogin.UniqueID] ?? settings.DbLogin;
        txtSqlName.Value           = Request[txtSqlName.UniqueID] ?? settings.DbName;
        txtSqlDsn.Value            = Request[txtSqlDsn.UniqueID] ?? settings.DbDsn;
        txtSqlSrc.Value            = Request[txtSqlSrc.UniqueID] ?? settings.DbHost;
        txtAccessFile.Value        = Request[txtAccessFile.UniqueID] ?? settings.DbPathToMdb;
        odbcConnectionString.Value = Request[odbcConnectionString.UniqueID] ?? settings.DbCustomConnectionString;
        useCS.Checked  = (Request[useCS.UniqueID] != null) ? true : settings.UseCustomConnectionString;
        useDSN.Checked = (Request[useDSN.UniqueID] != null) ? true : settings.UseDSN;

        Session["TrySqlPassword"] = txtSqlPassword.Text;
        txtSqlPassword.Attributes.Add("Value", txtSqlPassword.Text);

        string dsn = txtSqlDsn.Value;

        if (!useDSN.Checked)
        {
            dsn = string.Empty;
        }

        connectionString = DbManager.CreateConnectionString(useCS.Checked, odbcConnectionString.Value,
                                                            dsn, dbType, txtAccessFile.Value, txtSqlLogin.Value,
                                                            txtSqlPassword.Text, txtSqlName.Value, txtSqlSrc.Value);
        try
        {
            dbMan.Connect(connectionString);

            AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmConnectSuccess);
        }
        catch (WebMailDatabaseException error)
        {
            Log.WriteException(error);
            AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmConnectUnsuccess);
        }
        finally
        {
            dbMan.Disconnect();
        }
    }
示例#6
0
    protected void test_connection_Click(object sender, System.EventArgs e)
    {
        Session["TrySqlPassword"] = txtSqlPassword.Text;
        txtSqlPassword.Attributes.Add("Value", txtSqlPassword.Text);

        Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder();

        DbManager         dbMan            = null;
        string            connectionString = string.Empty;
        SupportedDatabase dbType           = SupportedDatabase.MsSqlServer;

        if (intDbTypeMsAccess.Checked)
        {
            dbMan  = new MsAccessDbManager();
            dbType = SupportedDatabase.MsAccess;
        }
        else if (intDbTypeMySql.Checked)
        {
            dbMan  = new MySqlDbManager();
            dbType = SupportedDatabase.MySql;
        }
        else
        {
            dbMan  = new MsSqlDbManager();
            dbType = SupportedDatabase.MsSqlServer;
        }

        string dsn = txtSqlDsn.Value;

        if (!useDSN.Checked)
        {
            dsn = string.Empty;
        }

        connectionString = DbManager.CreateConnectionString(useCS.Checked, odbcConnectionString.Value,
                                                            dsn, dbType, txtAccessFile.Value, txtSqlLogin.Value,
                                                            txtSqlPassword.Text, txtSqlName.Value, txtSqlSrc.Value);
        try
        {
            dbMan.Connect(connectionString);

            if (!intDbTypeMsAccess.Checked)
            {
                try
                {
                    dbMan.DropTable("a_test", DbPrefix.Value);
                }
                catch { }

                dbMan.CreateTable("a_test", DbPrefix.Value);
                dbMan.DropTable("a_test", DbPrefix.Value);
            }

            _errorMessageConnection = @"<font color=""green"">" + Constants.mailAdmConnectSuccess + "</font>";
        }
        catch (WebMailDatabaseException error)
        {
            Log.WriteException(error);
            _errorMessageConnection = @"<font color=""red"">" + Constants.mailAdmConnectUnsuccess + ": " + error.Message + "</font>";
        }
        finally
        {
            dbMan.Disconnect();
        }
    }