/**
  * @param Request $request
  * @param EventIdentifier $eventIdentifier
  * @return JsonResponse
  */
 public function renderAction(Request $request, EventIdentifier $eventIdentifier)
 {
     if ($request->get('decimal')) {
         $decimal = $request->get('decimal');
     } else {
         $decimal = 0;
     }
     if ($request->get('limit')) {
         $limit = max($request->get('limit'), 2);
     } else {
         $limit = 2;
     }
     $conn = $this->container->get('database_connection');
     $sql = "SELECT value FROM `event` WHERE event_identifier_id=" . $eventIdentifier->getId() . " ORDER BY created desc limit " . $limit;
     $rows = $conn->query($sql)->fetchAll();
     $chart = new \StdClass();
     $datas = [];
     foreach ($rows as $row) {
         $datas[]['value'] = round($row['value'], $decimal);
     }
     $chart->item = $datas;
     $response = new JsonResponse($chart);
     $response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT);
     return $response;
 }
 public function renderAction(Request $request, EventIdentifier $eventIdentifier)
 {
     if ($request->get('interval')) {
         $intervalType = $request->get('interval');
     } else {
         $intervalType = 'd';
     }
     if ($request->get('decimal')) {
         $decimal = $request->get('decimal');
     } else {
         $decimal = 0;
     }
     if ($request->get('labelInterval')) {
         $labelInterval = $request->get('labelInterval');
     } else {
         $labelInterval = 1;
     }
     switch ($intervalType) {
         case 'd':
             $groupDateForm = "%Y%m%d";
             $selectDateForm = "%d.%m.%Y";
             $interval = 'P1M';
             break;
         case 'h':
             $groupDateForm = "%Y%m%d%H";
             $selectDateForm = "%h %p";
             $interval = 'P1D';
             break;
         default:
             return new JsonResponse(['status' => 'error', 'message' => 'IntervalType ' . $intervalType . ' does not exists.'], 404);
     }
     $startDate = new \DateTime('now');
     $startDate->sub(new \DateInterval($interval));
     $conn = $this->container->get('database_connection');
     $sql = "SELECT AVG(value) as avgValue, DATE_FORMAT(created, '" . $selectDateForm . "') as timespan FROM `event` WHERE event_identifier_id=" . $eventIdentifier->getId() . " and created > '" . $startDate->format('Y-m-d H:i:s') . "' GROUP BY DATE_FORMAT(created, '" . $groupDateForm . "')";
     $rows = $conn->query($sql)->fetchAll();
     $chart = new \StdClass();
     $chart->x_axis = ['labels' => []];
     $datas = [];
     $i = 0;
     foreach ($rows as $row) {
         if ($i % $labelInterval == 0) {
             $chart->x_axis['labels'][] = strtolower($row['timespan']);
         } else {
             $chart->x_axis['labels'][] = '';
         }
         $i++;
         $datas[] = round($row['avgValue'], $decimal);
     }
     $chart->series = [['data' => $datas]];
     $response = new JsonResponse($chart);
     $response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT);
     return $response;
 }
 public function unMarkAsIgnoredIssueAction(EventIdentifier $eventIdentifier)
 {
     $this->setProject($eventIdentifier->getProject());
     $this->assertUserRights(UserRole::ROLE_COLLABORATOR);
     $eventIdentifier->setIgnoredIssue(false);
     $project = $eventIdentifier->getProject();
     $project->incOpenIncidentCount();
     $em = $this->getDoctrine()->getManager();
     $em->persist($eventIdentifier);
     $em->persist($project);
     $em->flush();
     return $this->redirectToRoute("bauer_incident_dashboard_core_homepage", array('project' => $project->getIdentifier()));
 }
 public function onRawEventAdd(NewRawEventEvent $rawEventEvent)
 {
     $rawEvent = $rawEventEvent->getRawEvent();
     $eventIdentifier = $this->doctrineManager->getRepository('KoalamonIncidentDashboardBundle:EventIdentifier')->findOneBy(['identifier' => $rawEvent->getIdentifier(), 'project' => $rawEventEvent->getProject()]);
     if (!$eventIdentifier) {
         $system = $this->doctrineManager->getRepository('KoalamonIncidentDashboardBundle:System')->findOneBy(['identifier' => $rawEvent->getSystem()]);
         $eventIdentifier = new EventIdentifier();
         $eventIdentifier->setIdentifier($rawEvent->getIdentifier());
         $eventIdentifier->setSystem($system);
         $eventIdentifier->setProject($rawEventEvent->getProject());
         $this->doctrineManager->persist($eventIdentifier);
         $this->doctrineManager->flush();
     }
     $rawEventEvent->getEvent()->setEventIdentifier($eventIdentifier);
 }
 private function persistEventCount($count)
 {
     $em = $this->getContainer()->get('doctrine')->getManager();
     /** @var \Doctrine\ORM\EntityManager $em */
     $eventIdentifier = $em->getRepository('KoalamonIncidentDashboardBundle:EventIdentifier')->findOneBy(['identifier' => self::DELETED_EVENT_COUNT_IDENTIFIER_ID]);
     /** @var EventIdentifier $eventIdentifier */
     if ($eventIdentifier) {
         $eventIdentifier->setEventCount($eventIdentifier->getEventCount() + $count);
     } else {
         $eventIdentifier = new EventIdentifier();
         $eventIdentifier->setIdentifier(self::DELETED_EVENT_COUNT_IDENTIFIER_ID);
         $eventIdentifier->setProject($em->getRepository('KoalamonIncidentDashboardBundle:Project')->find(0));
         $eventIdentifier->setEventCount($count);
     }
     $em->persist($eventIdentifier);
     $em->flush();
 }