executeExpression method

Future<bool> executeExpression(
  1. String? expression,
  2. Map<String, dynamic> variables
)

Implementation

Future<bool> executeExpression(
    String? expression, Map<String, dynamic> variables) async {
  if (isNullOrEmpty(expression)) return true;

  bool ok = true;

  // evaluate the expression
  var result = await evaluate(expression!, variables);

  // get event strings
  List<String>? events = result?.split(nonQuotedSemiColons);

  // process each event
  if (events != null) {
    for (String event in events) {
      dynamic result = await executeEvent(event.trim(), variables: variables);
      if (result is bool && !result)
      {
        ok = false;
        break;
      }
    }
  }

  return ok;
}