get method
Implementation
@override
get({Dio? dioTestClient, bool? online}) async {
if (this.program != null) {
EnrollmentQuery enrollmentQuery = EnrollmentQuery(database: database);
enrollmentQuery.where(attribute: 'program', value: this.program);
if (this.orgUnit != null) {
enrollmentQuery.where(attribute: 'orgUnit', value: this.orgUnit);
}
List<Enrollment> enrollments = await enrollmentQuery.get();
if (enrollments.isEmpty) {
return [];
}
List<String> trackedEntityAttributeIds = [];
enrollments.forEach((enrollment) {
String? availableId;
try {
availableId = trackedEntityAttributeIds.firstWhere(
(id) => enrollment.trackedEntityInstance == id,
);
} catch (e) {}
if (availableId == null) {
trackedEntityAttributeIds.add(enrollment.trackedEntityInstance);
}
});
this.byIds(trackedEntityAttributeIds);
return this.repository.findAll(
database: this.database,
filters: this.filters,
fields: this.fields,
sortOrder: this.sortOrder,
relations: this.relations) as Future<List<TrackedEntityInstance>>;
}
if (this.id != null) {
return this.repository.find(
id: this.id,
fields: this.fields,
database: this.database,
relations: this.relations) as Future<List<TrackedEntityInstance>>;
}
return this.repository.findAll(
database: this.database,
filters: this.filters,
fields: this.fields as List<String>,
sortOrder: this.sortOrder,
relations: this.relations) as Future<List<TrackedEntityInstance>>;
}