private void buttonLoadDatabase_Click(object sender, EventArgs e)
{
if (m_Database != null && m_Database.Entries.Length > 0)
{ // Caution!
if (MessageBox("Loading a new database will lose existing database data, do you wish to continue?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
{
return;
}
}
string OldFileName = GetRegKey("DatabaseFileName", Path.Combine(m_ApplicationPath, "Database.rdb"));
openFileDialogDatabase.InitialDirectory = Path.GetFullPath(OldFileName);
openFileDialogDatabase.FileName = Path.GetFileName(OldFileName);
if (openFileDialogDatabase.ShowDialog(this) != DialogResult.OK)
{
return;
}
SetRegKey("DatabaseFileName", openFileDialogDatabase.FileName);
try
{
Database D = new Database();
try
{
D.Load(new FileInfo(openFileDialogDatabase.FileName));
}
catch (Database.InvalidDatabaseRootPathException _e)
{
MessageBox("The database could not be opened completely as it did not manage to reconnect manifest files on disk based on its embedded location path.\nConsider changing the root folder location to a valid path.\n\nError: " + _e.Message, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
if (m_Database != null)
{
m_Database.Dispose();
}
Database = D;
// Update UI
textBoxDatabaseFileName.Text = openFileDialogDatabase.FileName;
UpdateDatabaseEntries();
}
catch (Exception _e)
{
MessageBox("An error occurred while opening the database:\n\n", _e);
}
}