setConfigurationTrDto method

Future<ConfigurationTrDto?> setConfigurationTrDto(
  1. ConfigurationTrDto configurationTrDto
)

Implementation

Future<ConfigurationTrDto?> setConfigurationTrDto(
    ConfigurationTrDto configurationTrDto) async {
  int? id = configurationTrDto.id;
  if (!smdSys.isSystem) {
    if (id != null) throw ArgumentError("id must be null");
    ConfigurationDto configurationDto =
        ConfigurationDto.field(configurationTrDto, defaults);
    id = ConfigurationDao.getConfigurationId(
        configurationDto.subset,
        configurationDto.warden,
        configurationDto.configuration_name,
        configurationDto.ordinal,
        defaults);
    configurationTrDto.id = id;
  }
  ConfigurationTrDto? retConfigurationTrDto;
  try {
    await getConfigurationTrList(id, null, null, null, null,
        configurationTrDto.ts, null, null, null, null, null);
    retConfigurationTrDto =
        await updateConfigurationTrDto(configurationTrDto);
  } on SqlException catch (e) {
    if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND ||
        e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT) {
      configurationTrDto.id = null;
      retConfigurationTrDto =
          await insertConfigurationTrDto(configurationTrDto);
    }
  }
  return retConfigurationTrDto;
}