private bool SetConfigSettings()
{
// Our connection string temp variable
string ConnString;
// Sqlite or Mysql
if (TypeSelect.SelectedIndex == 0)
{
SQLiteConnectionStringBuilder Builder = new SQLiteConnectionStringBuilder();
Builder.DataSource = Path.Combine(Program.RootPath, DBName.Text + ".sqlite3");
Builder.Version = 3;
Builder.PageSize = 4096; // Set page size to NTFS cluster size = 4096 bytes
Builder.CacheSize = 10000;
Builder.JournalMode = SQLiteJournalModeEnum.Wal;
Builder.LegacyFormat = false;
Builder.DefaultTimeout = 500;
Builder.Pooling = true;
ConnString = Builder.ConnectionString;
}
else
{
MySqlConnectionStringBuilder Builder = new MySqlConnectionStringBuilder();
Builder.Server = Hostname.Text;
Builder.Port = (uint)Port.Value;
Builder.UserID = Username.Text;
Builder.Password = Password.Text;
Builder.Database = DBName.Text;
Builder.ConvertZeroDateTime = true;
ConnString = Builder.ConnectionString;
}
// Set config vars based on the database mode
if (DbMode == DatabaseMode.Stats)
{
// Make sure we arent sharing a database
if (ConnString.Equals(Program.Config.GamespyDBConnectionString, StringComparison.InvariantCultureIgnoreCase))
{
MessageBox.Show(
"The Stats database cannot be shared in the same database as the Gamespy database. Please use a different database name.",
"Ambiguity Error", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1,
(MessageBoxOptions)0x40000 // Force window on top
);
return false;
}
Program.Config.StatsDBEngine = (TypeSelect.SelectedIndex == 0)
? DatabaseEngine.Sqlite
: DatabaseEngine.Mysql;
Program.Config.StatsDBConnectionString = ConnString;
}
else
{
// Make sure we arent sharing a database
if (ConnString.Equals(Program.Config.StatsDBConnectionString, StringComparison.InvariantCultureIgnoreCase))
{
MessageBox.Show(
"The Gamespy database cannot be shared in the same database as the Stats database. Please use a different database name.",
"Ambiguity Error", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1,
(MessageBoxOptions)0x40000 // Force window on top
);
return false;
}
Program.Config.GamespyDBEngine = (TypeSelect.SelectedIndex == 0)
? DatabaseEngine.Sqlite
: DatabaseEngine.Mysql;
Program.Config.GamespyDBConnectionString = ConnString;
}
return true;
}