/**
  * {@inheritdoc}
  */
 public function getData(ActivityList $activityListEntity)
 {
     /** @var Email $email */
     $email = $headEmail = $this->doctrineRegistryLink->getService()->getRepository($activityListEntity->getRelatedActivityClass())->find($activityListEntity->getRelatedActivityId());
     if ($email->isHead() && $email->getThread()) {
         $headEmail = $this->emailThreadProvider->getHeadEmail($this->doctrineHelper->getEntityManager($activityListEntity->getRelatedActivityClass()), $email);
     }
     $data = ['ownerName' => $email->getFromName(), 'ownerLink' => null, 'entityId' => $email->getId(), 'headOwnerName' => $headEmail->getFromName(), 'headSubject' => $headEmail->getSubject(), 'headSentAt' => $headEmail->getSentAt()->format('c'), 'isHead' => $email->isHead() && $email->getThread(), 'treadId' => $email->getThread() ? $email->getThread()->getId() : null];
     if ($email->getThread()) {
         $emails = $email->getThread()->getEmails();
         // if there are just two email - add replayedEmailId to use on client side
         if (count($emails) === 2) {
             $data['replayedEmailId'] = $emails[0]->getId();
         }
     }
     if ($email->getFromEmailAddress()->getHasOwner()) {
         $owner = $email->getFromEmailAddress()->getOwner();
         $data['headOwnerName'] = $data['ownerName'] = $this->entityNameResolver->getName($owner);
         $route = $this->configManager->getEntityMetadata(ClassUtils::getClass($owner))->getRoute('view');
         $securityFacade = $this->securityFacadeLink->getService();
         if (null !== $route && $securityFacade->isGranted('VIEW', $owner)) {
             $id = $this->doctrineHelper->getSingleEntityIdentifier($owner);
             try {
                 $data['ownerLink'] = $this->router->generate($route, ['id' => $id]);
             } catch (RouteNotFoundException $e) {
                 // Do not set owner link if route is not found.
             }
         }
     }
     return $data;
 }
 /**
  * {@inheritdoc}
  */
 public function getData(ActivityList $activityListEntity)
 {
     /** @var Email $email */
     $email = $headEmail = $this->doctrineRegistryLink->getService()->getRepository($activityListEntity->getRelatedActivityClass())->find($activityListEntity->getRelatedActivityId());
     if ($email->isHead() && $email->getThread()) {
         $headEmail = $this->emailThreadProvider->getHeadEmail($this->doctrineHelper->getEntityManager($activityListEntity->getRelatedActivityClass()), $email);
     }
     $data = ['ownerName' => $email->getFromName(), 'ownerLink' => null, 'entityId' => $email->getId(), 'headOwnerName' => $headEmail->getFromName(), 'headSubject' => $headEmail->getSubject(), 'headSentAt' => $headEmail->getSentAt()->format('c'), 'isHead' => $email->isHead() && $email->getThread(), 'treadId' => $email->getThread() ? $email->getThread()->getId() : null];
     $data = $this->setReplaedEmailId($email, $data);
     if ($email->getFromEmailAddress()->getHasOwner()) {
         $owner = $email->getFromEmailAddress()->getOwner();
         $data['headOwnerName'] = $data['ownerName'] = $this->entityNameResolver->getName($owner);
         $data = $this->setOwnerLink($owner, $data);
     }
     return $data;
 }