/** {@inheritDoc} */
  @Override
  protected Fixture onExecute() throws Exception {
    Long fixtureId = getResult().getFixture().getId();
    Fixture fixture = fixtureRepository.findFixtureById(fixtureId);

    TaskExecutionStatus taskExecutionStatus =
        (getResult().getStatus().equals(ExecutionStatus.SUCCESS))
            ? TaskExecutionStatus.SUCCESS
            : TaskExecutionStatus.FAILURE;
    fixture.setTaskExecutionStatus(taskExecutionStatus);
    if (getResult().getStatus().equals(ExecutionStatus.FAILURE)) {
      if (StringUtils.isNotBlank(getResult().getExceptionMessage())) {
        fixture.setLastTaskMessage(getResult().getExceptionMessage());
      }
    }

    recordEvent(fixture);

    handleResult(fixture, result);

    if (shouldSendDefaultNotification()) {
      FixtureTaskExecutionNotification notification =
          new FixtureTaskExecutionNotification(new FixtureModel(fixture));
      notificationCenter.sendNotification(notification);
    }

    return fixture;
  }
 /**
  * Send a notification through the NotificationCenter
  *
  * @param notification The Notification to send.
  */
 protected void sendNotification(Notification notification) {
   notificationCenter.sendNotification(notification);
 }