Delete method

  1. @override
Future<void> Delete(
  1. dynamic id
)
override

Delete Fuction For Delete Item From Database

Implementation

@override
Future<void> Delete(dynamic id) async {
  SqliteStorage.Actions.add(ActionModelStorage(action: () async {
    var item = await query.GetById(id);
    await query.Delete(id);
    return item;
  }, reverse: (item) async {
    var database = await SqliteCommands(sqliteData: data).DBLoad();
    var items = await Get();
    int id = 0;
    if (table.primrayKeyType == PrimaryKeyEnum.AutoIncrement) {
      if (SqliteStorage.EndId == 0) {
        id = table.primrayKeyType == PrimaryKeyEnum.AutoIncrement
            ? (items.isEmpty ? 1 : table.primaryKeyGet(items.last) + 1)
            : table.primaryKeyGet(item);
        SqliteStorage.EndId = id;
      } else {
        SqliteStorage.EndId++;
        id = SqliteStorage.EndId;
      }
    } else {
      id = table.primrayKeyType == PrimaryKeyEnum.AutoIncrement
          ? (items.isEmpty ? 1 : table.primaryKeyGet(items.last) + 1)
          : table.primaryKeyGet(item);
    }
    table.primaryKeySet(item, id);
    await database.insert(table.tableName, toMap(item));
    await EFPrinter.printing(
        database, "Added ${table.tableName} with primary key $id", data);
  }));
}