public function attendees_match(SS_HTTPRequest $request)
 {
     $summit_id = intval($request->param('SummitID'));
     $summit = Summit::get()->byID($summit_id);
     Requirements::css('summit/css/simple-sidebar.css');
     // tag inputes
     Requirements::css('themes/openstack/bower_assets/bootstrap-tagsinput/dist/bootstrap-tagsinput.css');
     Requirements::css('themes/openstack/bower_assets/bootstrap-tagsinput/dist/bootstrap-tagsinput-typeahead.css');
     Requirements::css('themes/openstack/bower_assets/sweetalert/dist/sweetalert.css');
     Requirements::css('themes/openstack/bower_assets/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css');
     //Requirements::css('summit/css/summit-admin-speaker-merge.css');
     Requirements::javascript('summit/javascript/simple-sidebar.js');
     Requirements::javascript('themes/openstack/javascript/bootstrap-paginator/src/bootstrap-paginator.js');
     Requirements::javascript('themes/openstack/javascript/urlfragment.jquery.js');
     Requirements::javascript('themes/openstack/javascript/jquery-ajax-loader.js');
     Requirements::javascript('themes/openstack/bower_assets/sweetalert/dist/sweetalert.min.js');
     Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/jquery.validate.min.js');
     Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/additional-methods.min.js');
     Requirements::javascript('themes/openstack/bower_assets/typeahead.js/dist/typeahead.bundle.min.js');
     Requirements::javascript('themes/openstack/bower_assets/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js');
     Requirements::javascript('themes/openstack/javascript/jquery.cleanform.js');
     Requirements::javascript('summit/javascript/summit-admin-attendees-match.js');
     list($orphan_attendees, $count) = $this->eventbrite_attendee_repository->getUnmatchedPaged();
     return $this->getViewer('attendees_match')->process($this->customise(array('Summit' => $summit, 'Attendees' => $orphan_attendees, 'TotalAttendees' => $count)));
 }
 public function getEventbriteUnmatchedSuggestions(SS_HTTPRequest $request)
 {
     try {
         $eb_attendee_id = intval($request->param('EB_ATTENDEE_ID'));
         $summit_id = intval($request->param('SUMMIT_ID'));
         $summit = $this->summit_repository->getById($summit_id);
         if (is_null($summit)) {
             throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id));
         }
         $eb_attendee = $this->eventbriteattendee_repository->getByAttendeeId($eb_attendee_id);
         if (is_null($eb_attendee)) {
             throw new NotFoundEntityException('Attendee', sprintf(' id %s', $eb_attendee_id));
         }
         $suggestions = $this->eventbriteattendee_repository->getSuggestions($eb_attendee);
         $suggestion_array = array();
         foreach ($suggestions as $suggestion) {
             $suggestion_array[] = array('id' => $suggestion->ID, 'name' => $suggestion->FirstName . ' ' . $suggestion->Surname, 'email' => $suggestion->Email, 'reason' => $suggestion->Reason);
         }
         return $this->ok($suggestion_array);
     } catch (NotFoundEntityException $ex2) {
         SS_Log::log($ex2->getMessage(), SS_Log::WARN);
         return $this->notFound($ex2->getMessage());
     } catch (Exception $ex) {
         SS_Log::log($ex->getMessage(), SS_Log::ERR);
         return $this->serverError();
     }
 }