/**
  * Prepare data for the notification.
  *
  * @param Transition $transition Current transition.
  * @param Item       $item       Workflow item.
  * @param Context    $context    Transition context.
  *
  * @return array
  */
 private function prepareData(Transition $transition, Item $item, Context $context)
 {
     $entity = $this->getEntity($item);
     $step = $transition->getStepTo();
     $tokens = array();
     $tokens['entity'] = $entity->getPropertiesAsArray();
     $tokens['context'] = $context->getProperties();
     $tokens['entityId'] = (string) $item->getEntityId();
     $tokens['transition'] = $transition->getConfig();
     $tokens['transition']['name'] = $transition->getName();
     $tokens['transition']['label'] = $transition->getLabel();
     $tokens['step'] = $step->getConfig();
     $tokens['step']['name'] = $step->getName();
     $tokens['step']['label'] = $step->getLabel();
     $event = new PrepareNotificationTokensEvent(new \ArrayObject($tokens), $transition, $item);
     $this->eventDispatcher->dispatch($event::NAME, $event);
     return $event->getTokens()->getArrayCopy();
 }