firstWhereOrNull method
Future<TModel?>
firstWhereOrNull(
- Filter<ModelBase> where(
- TMeta t
), {
- Iterable<ColumnDefinition<TModel, dynamic>>? select(
- TMeta t
)?,
- List<OrmOrder<ModelBase>>? orderBy(
- TMeta t
)?,
- int? offset,
- bool? useIsolate,
- Map<String, dynamic>? isolateArgs,
- void onIsolatePreMap(
- Map<String, dynamic>? isolateArgs
)?,
})
Implementation
@override
Future<TModel?> firstWhereOrNull(
Filter Function(TMeta t) where, {
Iterable<ColumnDefinition<TModel, dynamic>>? Function(TMeta t)? select,
List<OrmOrder>? Function(TMeta t)? orderBy,
int? offset,
bool? useIsolate,
Map<String, dynamic>? isolateArgs,
void Function(Map<String, dynamic>? isolateArgs)? onIsolatePreMap,
}) async {
final customSelect = select?.call(t)?.toList();
if (customSelect != null && customSelect.isEmpty) {
throw ArgumentError('no select columns supplied');
}
final records = await getItems() ?? {};
final filters = where(t).filters;
final res = records.entries.firstWhereOrNull((element) {
return _where(element, filters);
});
if (res != null) {
return mType.load(res.value as Map<String, dynamic>) as TModel;
}
return null;
}