public static void OpenDatabase(
PSCmdletBase cmdlet,
string fileName,
bool structureDB,
bool repositoryDB,
bool resultsDB)
{
// check input
try {
string absolutePath =
System.IO.Path.GetFullPath(fileName);
cmdlet.WriteVerbose(cmdlet, absolutePath);
if (System.IO.File.Exists(absolutePath)) {
string connectionString =
"Data Source='" +
absolutePath +
"';Version=3;Max Pool Size=100;UseUTF16Encoding=True;";
cmdlet.WriteVerbose(cmdlet, connectionString);
using (SQLiteConnection conn = new SQLiteConnection(connectionString)) {
conn.Open();
IDatabase database =
new Database(
((DatabaseFileCmdletBase)cmdlet).Name,
fileName,
conn);
// check structure DB
// check repository DB
// check data DB
conn.Close();
if (structureDB) {
TestData.CurrentStructureDB = database;
}
if (repositoryDB) {
TestData.CurrentRepositoryDB = database;
}
if (resultsDB) {
TestData.CurrentResultsDB = database;
}
SQLiteData.Databases.Add(database);
cmdlet.WriteObject(cmdlet, database);
}
}
}
catch (Exception eOpenDB) {
cmdlet.WriteError(
cmdlet,
"Unable to open the database. " +
eOpenDB.Message,
"OpenDBFailed",
ErrorCategory.InvalidOperation,
true);
}
}