toListWhereMapContains method

Future<List<ISQLiteItem>> toListWhereMapContains(
  1. ISQLiteItem item,
  2. Map<String, dynamic> columnNameAndValues, {
  3. int? limit,
})

Implementation

Future<List<ISQLiteItem>> toListWhereMapContains(
    ISQLiteItem item, Map<String, dynamic> columnNameAndValues,
    {int? limit}) async {
  String tableName = item.getTableName();
  List<ISQLiteItem> results = [];
  var db = await getOpenDatabase();

  List<String> whereConditions = [];
  List<dynamic> whereArgs = [];

  columnNameAndValues.forEach((columnName, columnValue) {
    whereConditions.add('$columnName = ?');
    whereArgs.add(columnValue);
  });

  String condition = whereConditions.join(' OR ');

  var maps = await db.query(
    tableName,
    where: condition,
    whereArgs: whereArgs,
    limit: limit,
  );
  results = maps.map((map) => item.fromMap(map)).toList();
  return results;
}