public function storeAction(NotificationConfiguration $notificationConfiguration, Request $request)
 {
     $this->assertUserRights(UserRole::ROLE_ADMIN);
     $notificationConfiguration->setNotificationCondition($request->get('condition'));
     if ($request->get('notify_ack') === "true") {
         $notificationConfiguration->setNotifyAcknowledge(true);
     } else {
         $notificationConfiguration->setNotifyAcknowledge(false);
     }
     if ($request->get('notify_all') === "true") {
         $notificationConfiguration->setNotifyAll(true);
         $notificationConfiguration->clearConnectedTools();
     } else {
         $notificationConfiguration->setNotifyAll(false);
         $notificationConfiguration->clearConnectedTools();
         $tools = $request->get('tools');
         if (!is_null($tools)) {
             foreach ($tools as $toolId => $value) {
                 $tool = $this->getDoctrine()->getRepository('KoalamonIncidentDashboardBundle:Tool')->find((int) $toolId);
                 /** @var Tool $tool */
                 if ($tool->getProject() == $this->getProject()) {
                     $notificationConfiguration->addConnectedTool($tool);
                 }
             }
         }
     }
     $em = $this->getDoctrine()->getManager();
     $em->persist($notificationConfiguration);
     $em->flush();
     return $this->redirectToRoute('koalamon_notification_alerts_home');
 }
 public function sendNotification(NotificationConfiguration $config, Event $event, Event $lastEvent = null)
 {
     $container = new VariableContainer();
     $container->addVariable('event.status', $event->getStatus());
     $container->addVariable('event.message', $event->getMessage());
     $container->addVariable('event.url', $this->router->generate("bauer_incident_dashboard_core_homepage", array('project' => $event->getEventIdentifier()->getProject()->getIdentifier()), true));
     if ($lastEvent) {
         $container->addVariable('lastevent.message', $lastEvent->getMessage());
         $container->addVariable('lastevent.status', $lastEvent->getStatus());
     }
     $container->addVariable('system.name', $event->getSystem());
     $container->addVariable('tool.name', $event->getEventIdentifier()->getTool()->getName());
     $sender = SenderFactory::getSender($config->getSenderType());
     if ($sender instanceof ContainerAwareInterface) {
         $sender->setContainer($this->container);
     }
     $sender->init($this->router, $config->getOptions(), $container);
     $sender->send($event);
 }
 public function storeAction(Request $request)
 {
     $this->assertUserRights(UserRole::ROLE_ADMIN);
     $em = $this->getDoctrine()->getManager();
     if ($request->get('configurationId') > 0) {
         $configuration = $this->getDoctrine()->getRepository('KoalamonNotificationBundle:NotificationConfiguration')->find($request->get('configurationId'));
     } else {
         $configuration = new NotificationConfiguration();
         $configuration->setNotifyAll(false);
     }
     $configuration->setOptions($request->get('options'));
     $configuration->setSenderType($request->get('senderIdentifier'));
     $configuration->setProject($this->getProject());
     $configuration->setName($request->get('name'));
     $em->persist($configuration);
     $em->flush();
     return $this->redirectToRoute('koalamon_notification_home');
 }