eventHappened method

Future<bool> eventHappened(
  1. MBAutomationEvent event
)

Function called when an event happen. @param event The event that happened. @returns If the trigger has changed.

Implementation

Future<bool> eventHappened(MBAutomationEvent event) async {
  if (event.event != this.event) {
    return false;
  }
  bool isTriggerEvent = true;
  if (event.metadata != null) {
    if (metadata != null) {
      isTriggerEvent = mapEquals(
        event.metadata,
        metadata,
      );
    } else {
      isTriggerEvent = false;
    }
  } else if (metadata != null) {
    isTriggerEvent = false;
  }

  if (isTriggerEvent) {
    int currentNumberOfTimes = numberOfTimes ?? 0;
    currentNumberOfTimes += 1;
    numberOfTimes = currentNumberOfTimes;
    if (currentNumberOfTimes >= times) {
      completionDate = DateTime.now();
      return true;
    }
    return true;
  } else {
    return false;
  }
}