function newEventDraftJSON($draftslug, $stepid, Request $request, Application $app)
 {
     if (!$this->buildDraft($draftslug, $request, $app)) {
         return $app->abort(404);
     }
     $redirectToStep = $this->buildSteps($stepid, $request, $app);
     if ($redirectToStep) {
         return $app->abort(404);
     }
     $data = array('duplicates' => array());
     if ($this->parameters['currentStep']) {
         $this->parameters['currentStep']->onThisStepSetUpPage();
         $this->parameters['currentStep']->onThisStepProcessPage();
     }
     ///////////////////////////////////////////// Dupes?
     $event = new EventModel();
     $event->setSiteId($app['currentSite']->getId());
     foreach ($this->parameters['steps'] as $step) {
         $step->addDataToEventBeforeCheck($event);
     }
     if ($request->query->get('notDuplicateSlugs')) {
         if ($this->parameters['draft']->addNotDuplicateEvents(explode(",", $request->query->get('notDuplicateSlugs')))) {
             $repo = new NewEventDraftRepository();
             $repo->saveNotDuplicateEvents($this->parameters['draft']);
         }
     }
     $searchForDuplicateEvents = new SearchForDuplicateEvents($event, $app['currentSite'], $app['config']->findDuplicateEventsShow, $app['config']->findDuplicateEventsThreshhold, is_array($app['config']->findDuplicateEventsNoMatchSummary) ? $app['config']->findDuplicateEventsNoMatchSummary : array());
     $searchForDuplicateEvents->setNotDuplicateSlugs($this->parameters['draft']->getNotDuplicateEvents());
     $timeZone = new \DateTimeZone($event->getTimezone());
     $this->parameters['duplicateEvents'] = array();
     foreach ($searchForDuplicateEvents->getPossibleDuplicates() as $dupeEvent) {
         $start = clone $dupeEvent->getStartAt();
         $start->setTimezone($timeZone);
         $data['duplicates'][] = array('slug' => $dupeEvent->getSlug(), 'summary' => $dupeEvent->getSummary(), 'description' => $dupeEvent->getDescription(), 'startDay' => $start->format("D"), 'startDate' => $start->format("jS"), 'startMonthYear' => $start->format("M \\'y"), 'startTime' => $start->format("g:ia"));
     }
     ///////////////////////////////////////////// Other Data
     if ($this->parameters['currentStep']) {
         $data = array_merge($data, $this->parameters['currentStep']->onThisStepAddAJAXCallData());
     }
     ///////////////////////////////////////////// Response
     $response = new Response(json_encode($data));
     $response->headers->set('Content-Type', 'application/json');
     return $response;
 }