setWaterLineFieldDto method

Future<WaterLineFieldDto> setWaterLineFieldDto(
  1. WaterLineFieldDto waterLineFieldDto
)

Implementation

Future<WaterLineFieldDto> setWaterLineFieldDto(
    WaterLineFieldDto waterLineFieldDto) async {
  if (!initialized) throw ArgumentError(AbstractDao.C_MUST_INIT);
  late WaterLineFieldDto returnWaterLineFieldDto;
  bool entryFound = true;
  try {
    returnWaterLineFieldDto = await getWaterLineFieldDtoByUnique(
        waterLineFieldDto.id,
        waterLineFieldDto.table_field_id,
        waterLineFieldDto.change_type_enum,
        waterLineFieldDto.user_id);
  } on SqlException catch (e) {
    if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND) {
      entryFound = false;
      returnWaterLineFieldDto =
          await insertWaterLineFieldDto(waterLineFieldDto);
    }
  }
  if (entryFound) {
    try {
      returnWaterLineFieldDto =
          await updateWaterLineFieldDto(waterLineFieldDto);
    } on SqlException catch (e) {
      if (e.sqlExceptionEnum != SqlExceptionEnum.FAILED_UPDATE) rethrow;
    }
  }
  return returnWaterLineFieldDto;
}