byAttribute method

TrackedEntityInstanceQuery byAttribute(
  1. String attributeId,
  2. String attibuteValue
)

Implementation

TrackedEntityInstanceQuery byAttribute(
    String attributeId, String attibuteValue) {
  List<QueryFilter>? existingFilterForSameAttribute = this
      .attributeFilters
      ?.where((element) => element.attribute == attributeId)
      .toList();
  if (existingFilterForSameAttribute?.length == 0) {
    this.attributeFilters?.add(QueryFilter(
        attribute: attributeId,
        condition: QueryCondition.Equal,
        value: attibuteValue));
  } else {
    QueryFilter newQueryFilter = QueryFilter(
        attribute: attributeId,
        condition: QueryCondition.In,
        value:
            '${existingFilterForSameAttribute?[0].value};${attibuteValue}');

    this
        .attributeFilters
        ?.removeWhere((element) => element.attribute == attributeId);
    this.attributeFilters?.add(newQueryFilter);
  }

  return this;
}