private void Connect ()
{
try {
string connectionString = String.Format("Server={0};Database={1};User ID={2};Password={3};",
Configuration.DatabaseHost,
Configuration.DatabaseName,
Configuration.DatabaseUser,
Configuration.DatabasePassword
);
if (Configuration.DatabasePort != 0)
connectionString += string.Format ("Port={0};", Configuration.DatabasePort);
dbcon = new NpgsqlConnection (connectionString);
log.DebugFormat ("Connecting to database, connection string: {0}", connectionString);
dbcon.Open ();
object db_now_obj = ExecuteScalar ("SELECT now();");
DateTime db_now;
DateTime machine_now = DateTime.Now;
db_now = (DateTime) db_now_obj;
db_time_difference = db_now - machine_now;
log.DebugFormat ("DB now: {0:yyyy/MM/dd HH:mm:ss.ffff}, current machine's now: {1:yyyy/MM/dd HH:mm:ss.ffff}, adjusted now: {3}, diff: {2:yyyy/MM/dd HH:mm:ss.ffff} ms", db_now, machine_now, db_time_difference.TotalMilliseconds, Now);
} catch (Exception) {
if (dbcon != null) {
dbcon.Dispose ();
dbcon = null;
}
throw;
}
}