processWaterLine method

Future<RemoteDto> processWaterLine(
  1. WaterLineDto waterLineDto,
  2. AbstractTransactionTrDao trDao,
  3. DbTransaction transaction,
  4. WardenType? localWardenType,
  5. UserDto remoteUserDto,
)

Implementation

Future<RemoteDto> processWaterLine(
    WaterLineDto waterLineDto,
    AbstractTransactionTrDao trDao,
    DbTransaction transaction,
    WardenType? localWardenType,
    UserDto remoteUserDto) async {
  RawRowData rawRowData;
  switch (waterLineDto.water_table_id) {
    case UserMixin.C_TABLE_ID:
      UserTrDao userTrDao = UserTrDao(smdSys, transaction);
      await userTrDao.init();
      FieldData fieldData=UserTrDto.getSelectFieldData();
      rawRowData = await userTrDao.getRawRowDataByTs(waterLineDto.water_ts!, fieldData: fieldData);
      if (Warden.isClient(remoteUserDto.warden) && (rawRowData.get('id',null) as int)!=remoteUserDto.id) {
        rawRowData.set("pass_key", null);
      }
      break;
    case AuthenticationDto.C_TABLE_ID:
    case EntryReceivedDto.C_TABLE_ID:
    case RemoteStatusDto.C_TABLE_ID:
    case WaterLineDto.C_TABLE_ID:
    case WaterLineFieldDto.C_TABLE_ID:
    case TransactionTools.C_LAST_FIELD_RECEIVED_TABLE_ID:
    case TransactionTools.C_MAX_INT_TABLE_ID:
      throw UnsupportedError("Error invalid table '" +
          waterLineDto.water_table_name +
          "'");
    default:
      TableTransactionTrDao trDao=TableTransactionTrDao(smdSys, transaction);
      await trDao.init(table_id:waterLineDto.water_table_id);
      rawRowData = await trDao.getRawRowDataByTs(waterLineDto.water_ts!);
  }
  RemoteDto remoteDto = RemoteDto.sep(TrDto.field(rawRowData.getFieldData()), smd,
      waterLineDto: waterLineDto, water_table_id: waterLineDto.water_table_id);
  return remoteDto;
}