updateConfigurationTrDto method
Implementation
Future<ConfigurationTrDto> updateConfigurationTrDto(
ConfigurationTrDto configurationTrDto) async {
validateTrDto(configurationTrDto, OperationType.UPDATE);
bool identifyingFieldsPassed = false;
bool setIdentifyingFields = false;
if (configurationTrDto.subset != null &&
configurationTrDto.warden != null &&
configurationTrDto.configuration_name != null &&
configurationTrDto.ordinal != null) identifyingFieldsPassed = true;
if (smdSys.isSystem) {
setIdentifyingFields = true;
} else if (configurationTrDto.id != null) {
setIdentifyingFields = true;
} else if (!identifyingFieldsPassed) {
throw SqlException(SqlExceptionEnum.FAILED_UPDATE,
cause:
"must pass either id or SubSet, WardenType, ConfigurationName and Ordinal");
}
FieldData fieldData = FieldData.wee(ConfigurationMixin.C_TABLE_ID);
fieldData.set("id", configurationTrDto.id);
if (setIdentifyingFields) {
if (configurationTrDto.subset != null)
fieldData.set("subset", configurationTrDto.subset);
if (configurationTrDto.warden != null)
fieldData.set(
"warden", Warden.getWardenValue(configurationTrDto.warden));
if (configurationTrDto.configuration_name != null)
fieldData.set(
"configuration_name",
defaults
.getConfigurationNameStruct(
configurationTrDto.configuration_name!)
.name);
if (configurationTrDto.ordinal != null)
fieldData.set("ordinal", configurationTrDto.ordinal);
}
fieldData.set("value_number", configurationTrDto.value_number);
fieldData.set("value_string", configurationTrDto.value_string);
fieldData = getTrSet(fieldData, configurationTrDto.getTrDto);
WhereData whereData = WhereData();
if (smdSys.isSystem) {
if (configurationTrDto.ts == null)
throw SqlException(SqlExceptionEnum.FAILED_UPDATE,
cause: "ts must not be null");
whereData.set("ts", SqlOperator.EQUAL, configurationTrDto.ts);
} else {
whereData.set("id", SqlOperator.EQUAL, configurationTrDto.id);
if (configurationTrDto.id == null) {
whereData.set("subset", SqlOperator.EQUAL, configurationTrDto.subset);
whereData.set("warden", SqlOperator.EQUAL,
Warden.getWardenValue(configurationTrDto.warden));
whereData.set(
"configuration_name",
SqlOperator.EQUAL,
defaults
.getConfigurationNameStruct(
configurationTrDto.configuration_name!)
.name);
whereData.set("ordinal", SqlOperator.EQUAL, configurationTrDto.ordinal);
}
}
try {
await super.updateTR(configurationTrDto, fieldData, whereData);
} on SqlException catch (e) {
if (e.sqlExceptionEnum != SqlExceptionEnum.PARTITION_NOT_FOUND) rethrow;
}
return configurationTrDto;
}