processUpdate method

  1. @override
Future<RemoteDto?> processUpdate()
override

Implementation

@override
Future<RemoteDto?> processUpdate() async {
  FieldData? originalDto = null;
  RemoteDto? remoteDto;
  bool entryFound = true;
  try {
    originalDto = await tableTransactions.find();
    String crc=DataTools.getCrcFromTable(tableTransactions.table_id, originalDto, smdSys);
    tableTransactions.setCrc(crc);
  } on SqlException catch (e) {
    if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND) {
      entryFound = false;
      waterLine.setWaterError(WaterError.ID_NOT_FOUND);
      remoteDto = await commitChanges(null);
    } else if (e.sqlExceptionEnum == SqlExceptionEnum.FAILED_SELECT) {
      waterLine.setWaterError(WaterError.INVALID_ENTRY);
      remoteDto = await commitChanges(null);
    } else rethrow;
  }
  if (entryFound) {
    remoteDto = await super.writeUpdate(originalDto);
  }
  return remoteDto;
}