filter method
- String? query,
- String? username,
- String? lastname,
- String? firstname,
- Vintage? vintage,
- List<
int> ? ids, - Set<
UserCapability> capabilities = const {}, - UserCapability? capability,
Filters this list by username
, lastname
, firstname
, vintage
and ids
and returns list of users that match the filter criteria.
String values are case-insensitive.
If ids
is not empty, only users with an id in the list are returned.
Implementation
Iterable<User> filter({
String? query,
String? username,
String? lastname,
String? firstname,
Vintage? vintage,
List<int>? ids,
/// The user must have all capabilities in this set.
Set<UserCapability> capabilities = const {},
UserCapability? capability,
}) {
return where((user) {
if (query != null &&
!user.username.containsIgnoreCase(query) &&
!user.lastname.containsIgnoreCase(query) &&
!user.firstname.containsIgnoreCase(query)) {
return false;
}
if (username != null && !user.username.containsIgnoreCase(username)) return false;
if (lastname != null && !user.lastname.containsIgnoreCase(lastname)) return false;
if (firstname != null && !user.firstname.containsIgnoreCase(firstname)) return false;
if (ids != null && !ids.contains(user.id)) return false;
if (vintage != null && user.vintage != vintage) return false;
if (capabilities.isNotEmpty && !user.capabilities.has(capabilities.toList())) return false;
if (capability != null && !user.capabilities.contains(capability)) return false;
return true;
});
}