toggleServer static method
Implementation
static Future<void> toggleServer(
SchemaMetaData smd, ConfigurationNameDefaults defaults) async {
final WardenType C_WARDEN_TYPE = WardenType.USER;
DbTransaction mysqlTransaction =
await DataBaseHelper.getDbTransaction(C_DATABASE_NAME);
try {
ConfigurationDao configurationDao =
ConfigurationDao(smd, mysqlTransaction, defaults);
await configurationDao.init(initTable: true);
bool testServer = true;
try {
await configurationDao.getString(ConfigurationUtils.C_TEST_SUBSET,
C_WARDEN_TYPE, ConfigurationNameEnum.WEB_URL);
testServer = true;
} on SqlException catch (e) {
if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT)
testServer = false;
}
ConfigurationUtils cu =
ConfigurationUtils(C_WARDEN_TYPE, smd, mysqlTransaction, defaults);
await cu.init();
if (testServer) {
await cu.fetchConfigurationString(ConfigurationNameEnum.WEB_URL);
} else {
await cu.storeConfigurationString(
ConfigurationNameEnum.WEB_URL, ConfigurationUtils.C_TEST_WEB);
}
} finally {
await mysqlTransaction.connection.close();
await mysqlTransaction.endTransaction();
await mysqlTransaction.closePool();
}
}