/**
  * While migrate Contao newsletter recipients, fill with member details.
  *
  * @param MigrateRecipientEvent $event
  */
 public function collectMemberPersonals(MigrateRecipientEvent $event)
 {
     global $container;
     $migrationSettings = $event->getMigrationSettings();
     if ($migrationSettings['importFromMembers']) {
         $recipient = $event->getRecipient();
         /** @var \Doctrine\DBAL\Connection $connection */
         $connection = $container['doctrine.connection.default'];
         $queryBuilder = $connection->createQueryBuilder();
         /** @var \PDOStatement $stmt */
         $stmt = $queryBuilder->select('*')->from('tl_member', 'm')->where($queryBuilder->expr()->eq('m.email', ':email'))->setParameter('email', $recipient->getEmail())->execute();
         $member = $stmt->fetch(\PDO::FETCH_ASSOC);
         if ($member) {
             /** @var EntityAccessor $entityAccessor */
             $entityAccessor = $container['doctrine.orm.entityAccessor'];
             foreach ($member as $key => $value) {
                 // graceful conversions
                 switch ($key) {
                     case 'id':
                         $value = $entityAccessor->getPrimaryKey($recipient);
                         break;
                     case 'firstname':
                         $key = 'forename';
                         break;
                     case 'lastname':
                         $key = 'surname';
                         break;
                 }
                 if ($entityAccessor->hasProperty($recipient, $key)) {
                     $entityAccessor->setProperty($recipient, $key, $value);
                 }
             }
         }
     }
 }
 /**
  * @param MigrateRecipientEvent $event
  * @SuppressWarnings(PHPMD.CamelCaseVariableName)
  */
 public static function collectPersonalsFromMembers(MigrateRecipientEvent $event)
 {
     global $container, $TL_DCA;
     $migrate = new Migrate();
     $migrate->loadLanguageFile('orm_avisota_recipient');
     $migrate->loadDataContainer('orm_avisota_recipient');
     $migrationSettings = $event->getMigrationSettings();
     if ($migrationSettings['importFromMembers']) {
         /** @var \Doctrine\DBAL\Connection $connection */
         $connection = $container['doctrine.connection.default'];
         $recipient = $event->getRecipient();
         $queryBuilder = $connection->createQueryBuilder();
         /** @var PDOStatement $stmt */
         $stmt = $queryBuilder->select('*')->from('tl_member', 'm')->where($queryBuilder->expr()->eq('email', $recipient->getEmail()))->execute();
         $member = $stmt->fetch();
         $fields = $TL_DCA['orm_avisota_recipient']['fields'];
         foreach ($fields as $fieldName => $fieldConfig) {
             if (isset($fieldConfig['eval']['migrateFrom'])) {
                 $recipient->{$fieldName} = $member[$fieldConfig['eval']['migrateFrom']];
             }
         }
     }
 }