updateConfigurationByTransaction static method
Future<void>
updateConfigurationByTransaction(
- WardenType configurationWardenType,
- ConfigurationNameEnum configurationNameEnum,
- int? ordinal,
- int? valueNumber,
- String? valueString,
- bool writeTr,
- SchemaMetaData smd,
- SchemaMetaData smdSys,
- DbTransaction transaction,
- ConfigurationNameDefaults defaults,
Implementation
static Future<void> updateConfigurationByTransaction(
WardenType configurationWardenType,
ConfigurationNameEnum configurationNameEnum,
int? ordinal,
int? valueNumber,
String? valueString,
bool writeTr,
SchemaMetaData smd,
SchemaMetaData smdSys,
DbTransaction transaction,
ConfigurationNameDefaults defaults) async {
if (defaults == null)
throw ArgumentError(AbstractTableTransactions.C_MUST_PASS_DEFAULTS);
if (ordinal == null) ordinal = 0;
if (!writeTr) {
// If local & remote Wardens are the same dont update WaterLine / HC for propagation
ConfigurationDao configurationDao =
ConfigurationDao(smd, transaction, defaults);
await configurationDao.init(initTable: false);
await configurationDao.insertDefaultValues();
ConfigurationDto configurationDto = ConfigurationDto.sep(
null,
0,
configurationWardenType,
configurationNameEnum,
ordinal,
valueNumber,
valueString,
defaults);
try {
await configurationDao.setConfigurationDto(configurationDto);
} on SqlException catch (e) {
if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT) {
print("$e");
return null;
}
}
} else {
TrDto trDto = TrDto.wee(ConfigurationMixin.C_TABLE_ID);
trDto.sep(null, OperationType.UPDATE, 0, null, "Update by Script", null,
ConfigurationMixin.C_TABLE_ID);
ConfigurationTrDto configurationTrDto = ConfigurationTrDto.sep(
null,
0,
configurationWardenType,
configurationNameEnum,
ordinal,
valueNumber,
valueString,
trDto,
defaults);
ConfigurationTransactions configurationTransactions =
ConfigurationTransactions.sep(configurationTrDto);
await configurationTransactions.init(WardenType.WRITE_SERVER,
WardenType.WRITE_SERVER, smd, smdSys, transaction,
defaults: defaults);
AbstractWarden abstractWarden = WardenFactory.getAbstractWarden(
WardenType.WRITE_SERVER, WardenType.WRITE_SERVER);
await abstractWarden.init(smd, smdSys, transaction);
abstractWarden.initialize(configurationTransactions,
passedWaterState: WaterState.SERVER_APPROVED);
try {
await abstractWarden.write();
} on SqlException catch (e) {
if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT ||
e.sqlExceptionEnum == SqlExceptionEnum.FAILED_UPDATE ||
e.sqlExceptionEnum == SqlExceptionEnum.PARTITION_NOT_FOUND) {
print("WS $e");
}
}
}
}