addRecord method
Add Database Record
Return-> (record, result)
parentId ?? JsonDBAdapter.getParentId(T value)
/// For JsonRecord
abstract class JsonDBAdapter<T>
int getParentId(T value) => -1; <--- Need To Override
Implementation
Future<(DatabaseRecord, bool)> addRecord(
DatabaseRecord record, {
bool Function()? isCancelledFile,
void Function(double progress)? onProgressFile,
}) async {
if (!isOpened) throw Exception('You Should Call -> SMDB.open()');
// lastindex
if (record.id == 0 || record.id == -1) {
record.id = _indexedDB.generateNextId();
}
bool result = false;
final file = File(path);
final raf = await file.open(mode: FileMode.append);
if (record is FileRecord) {
result = await record.write(
raf,
isCancelled: isCancelledFile,
onProgress: onProgressFile,
);
} else {
await record.write(raf);
result = true;
}
// add index db
if (record is JsonRecord) {
record.jsonBytes = null;
}
await _indexedDB.addRecordToRAM(record);
await raf.close();
return (record, result);
}