/**
  * @return ViewModel|Response
  */
 public function updateAction()
 {
     $campaignId = $this->params('entityId');
     /** @var Campaign $campaign */
     $campaign = $this->campaignRepository->getOneById($campaignId);
     if (!$campaign) {
         return $this->redirect()->toRoute(static::BASE_ROUTE);
     }
     $message = $this->messageRepository->getSystemMessage($campaignId);
     if (!$message) {
         $message = $this->messageRepository->getNewEntity();
     }
     try {
         if ($this->manager->handlePost($campaign, $message)) {
             $msg = $this->userText->getMessage(EntityName::CAMPAIGN, Message::UPDATE_SUCCESS);
             $this->flashMessenger()->addSuccessMessage($msg);
             $this->addSystemMessageMessages();
             return $this->redirect()->toRoute(static::BASE_ROUTE);
         }
     } catch (Manager\Exception\Db $exc) {
         $campaignMsg = $this->userText->getMessage(EntityName::CAMPAIGN, Message::SAVE_FAILED);
         $messageMsg = $this->userText->getMessage(EntityName::MESSAGE, Message::SAVE_FAILED);
         $this->currentMessages[FeedbackType::DANGER][] = $campaignMsg;
         $this->currentMessages[FeedbackType::DANGER][] = $messageMsg;
     }
     $this->layout()->currentMessages = $this->currentMessages;
     return new ViewModel(['form' => $this->manager->getForm(), 'tinyMceLang' => $this->tinyMceLang]);
 }
Beispiel #2
0
 /**
  * @param Entity\Subscriber $subscriber
  * @param Entity\Campaign   $campaign
  *
  * @return bool
  */
 public function handlePost(Entity\Subscriber $subscriber, Entity\Campaign $campaign)
 {
     $form = $this->getForm();
     if (!$this->request->isPost()) {
         return false;
     }
     $form->setData($this->request->getPost());
     if (!$form->isValid()) {
         return false;
     }
     $subscriber->populate($form->getData());
     if (!$subscriber->hasCampaign($campaign)) {
         $subscriber->addCampaign($campaign);
     }
     $systemMessage = $this->messageRepository->getSystemMessage($campaign->getId());
     $this->queueMessage($subscriber, $systemMessage);
     return $this->saveEntity($subscriber);
 }
Beispiel #3
0
 /**
  * @covers DmMailer\Repository\Message
  */
 public function testGetSystemMessage()
 {
     $actualResult = $this->sut->getSystemMessage(1);
     $this->assertInstanceOf('DmMailer\\Entity\\Message', $actualResult);
     $this->assertEquals('System Winter 2013!', $actualResult->getSubject());
 }