/**
  * @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]);
 }
Example #2
0
 /**
  * @covers DmMailer\Repository\QueueItem
  */
 public function testQueueMessage()
 {
     $oldQueueSize = count($this->sut->findAll());
     $campaign = $this->campaignRepo->findOneBy(['entityId' => 1]);
     $message = $this->messageRepo->getNewEntity();
     $message->setSubject('Subject');
     $message->setBody('Body');
     $message->setCampaign($campaign);
     $this->sut->queueMessage($message);
     $newQueueSize = count($this->sut->findAll());
     $this->assertGreaterThan($oldQueueSize, $newQueueSize);
     $this->assertEquals($oldQueueSize + count($campaign->getSubscribers()), $newQueueSize);
 }
 /**
  * @return ViewModel
  */
 public function createAction()
 {
     /** @var EntityMessage $message */
     $message = $this->messageRepository->getNewEntity();
     try {
         if ($this->manager->handlePost($message)) {
             $feedback = $this->userText->getMessage(EntityName::MESSAGE, DmCommonMessage::CREATE_SUCCESS);
             $this->flashMessenger()->addSuccessMessage($feedback);
             return $this->redirect()->toRoute(static::REVIEW_ROUTE, ['entityId' => $message->getId()]);
         }
     } catch (DbException $exc) {
         $feedback = $this->userText->getMessage(EntityName::MESSAGE, DmCommonMessage::SAVE_FAILED);
         $this->currentMessages[FeedbackType::DANGER][] = $feedback;
     }
     $this->layout()->currentMessages = $this->currentMessages;
     return new ViewModel($this->getFormViewData());
 }