processInsert method

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

Implementation

@override
Future<RemoteDto?> processInsert() async {
  RemoteDto? remoteDto = null;
  switch (passedWaterState) {
    case WaterState.SERVER_APPROVED:
      if (tableTransactions.getTrDto().id == null) {
        remoteDto = await super.writeAdd();
      } else {
        remoteDto = await super.writeOverWrite();
      }
      try {
        await tableTransactions.updateWaterLineField();
      } on SqlException catch (e) {
        if (e.sqlExceptionEnum != SqlExceptionEnum.ENTRY_NOT_FOUND) rethrow;
      }
      break;
    case WaterState.SERVER_REJECTED:
      try {
        await tableTransactions.delete(null);
      } on SqlException catch (e) {
        if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND) {
          print("WS $e");
        } else rethrow;
      }
      remoteDto = await commitChanges(null);
      break;
    case WaterState.SERVER_PENDING:
      remoteDto = await super.writeOverWrite();
      break;
    default:
  }
  return remoteDto;
}