/**
  * @param RecipientSource $entity
  *
  * @return mixed
  * @SuppressWarnings(PHPMD.LongVariable)
  */
 public function createRecipientSource(RecipientSource $entity)
 {
     $recipientSource = new RecipientsRecipientSource();
     if ($entity->getFilter()) {
         if ($entity->getFilterByMailingLists()) {
             $recipientSource->setFilteredMailingLists($entity->getMailingLists()->toArray());
         }
         if ($entity->getRecipientsUsePropertyFilter()) {
             $recipientSource->setFilteredProperties($entity->getRecipientsPropertyFilter());
         }
     }
     $this->parseRecipientsManageSubscriptionPage($entity, $recipientSource);
     $this->parseRecipientsUnsubscribePage($entity, $recipientSource);
     return $recipientSource;
 }
 public function createRecipientSource(RecipientSource $recipientSourceEntity)
 {
     $recipientSource = new RecipientsRecipientSourceSalutations();
     if ($recipientSourceEntity->getFilter()) {
         if ($recipientSourceEntity->getFilterByMailingLists()) {
             $recipientSource->setFilteredMailingLists($recipientSourceEntity->getMailingLists()->toArray());
         }
         if ($recipientSourceEntity->getRecipientsUsePropertyFilter()) {
             $recipientSource->setFilteredProperties($recipientSourceEntity->getRecipientsPropertyFilter());
         }
     }
     /** @var EventDispatcherInterface $eventDispatcher */
     $eventDispatcher = $GLOBALS['container']['event-dispatcher'];
     if ($recipientSourceEntity->getRecipientsManageSubscriptionPage()) {
         $getPageDetailsEvent = new GetPageDetailsEvent($recipientSourceEntity->getRecipientsManageSubscriptionPage());
         $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GET_PAGE_DETAILS, $getPageDetailsEvent);
         $generateFrontendUrlEvent = new GenerateFrontendUrlEvent($getPageDetailsEvent->getPageDetails());
         $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GENERATE_FRONTEND_URL, $generateFrontendUrlEvent);
         $url = $generateFrontendUrlEvent->getUrl();
         $url .= (strpos($url, '?') !== false ? '&' : '?') . 'avisota_subscription_email=##email##';
         if (!preg_match('~^\\w+:~', $url)) {
             $environment = \Environment::getInstance();
             $url = rtrim($environment->base, '/') . '/' . ltrim($url, '/');
         }
         $recipientSource->setManageSubscriptionUrlPattern($url);
     }
     if ($recipientSourceEntity->getRecipientsUnsubscribePage()) {
         $getPageDetailsEvent = new GetPageDetailsEvent($recipientSourceEntity->getRecipientsUnsubscribePage());
         $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GET_PAGE_DETAILS, $getPageDetailsEvent);
         $generateFrontendUrlEvent = new GenerateFrontendUrlEvent($getPageDetailsEvent->getPageDetails());
         $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GENERATE_FRONTEND_URL, $generateFrontendUrlEvent);
         $url = $generateFrontendUrlEvent->getUrl();
         $url .= (strpos($url, '?') !== false ? '&' : '?') . 'avisota_subscription_email=##email##';
         if (!preg_match('~^\\w+:~', $url)) {
             $environment = \Environment::getInstance();
             $url = rtrim($environment->base, '/') . '/' . ltrim($url, '/');
         }
         $recipientSource->setUnsubscribeUrlPattern($url);
     }
     $event = new CreateRecipientSourceEvent($recipientSourceEntity, $recipientSource);
     $eventDispatcher->dispatch(CoreEvents::CREATE_RECIPIENT_SOURCE, $event);
     return $event->getRecipientSource();
 }