execute method
Implementation
Future<bool> execute(Observable? observable) async
{
bool ok = true;
if (observable == null) return ok;
// get expression
String? expression = (observable.isEval) ? observable.value : (observable.signature ?? observable.value);
if (S.isNullOrEmpty(expression)) return ok;
// replace 'this' pointer with the parent model id
if (expression!.contains(thisDot)) expression = expression.replaceAll(thisDot, "${model.id}.");
// get variables from observable
Map<String?, dynamic> variables = observable.getVariables();
// evaluate the expression
expression = await evaluate(expression, variables);
// get event strings
List<String> events = getEvents(expression);
// process each event
for (String event in events)
{
dynamic ok = await executeEvent(event, variables: variables);
if (ok == false) break;
}
return ok;
}