revert method
Implementation
@override
Future<DeletedRowsStruct> revert() async {
if (!initialized) throw ArgumentError(AbstractDao.C_MUST_INIT);
DeletedRowsStruct struct = DeletedRowsStruct(trDto.ts);
switch (trDto.operation) {
case OperationType.INSERT:
await delete(null);
await deleteTrRowByTs(struct.ts!);
break;
case OperationType.UPDATE:
await delete(null);
await deleteTrRowByTs(struct.ts!);
RawTableData snapShotRtd = await tableTransactionTrDao.getTrList(
null,
OperationType.SNAPSHOT,
0,
trDto.user_ts,
null,
null,
null,
null,
null);
RawRowData snapShotRd = snapShotRtd.getRawRowData(0);
FieldData snapShotFd =
TransactionTools.removeTrFieldData(snapShotRd.getFieldData());
await tableTransactionDao.upsert(snapShotFd, WhereData());
struct.snapshotTs = snapShotRd.get("ts", null) as int;
await tableTransactionTrDao.deleteByTs(struct.snapshotTs);
break;
case OperationType.DELETE:
await tableTransactionDao.upsert(trDto, WhereData());
await deleteTrRowByTs(struct.ts!);
break;
case OperationType.SNAPSHOT:
break;
}
return struct;
}