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 getEventbriteUnmatched(SS_HTTPRequest $request)
 {
     try {
         $query_string = $request->getVars();
         $page = isset($query_string['page']) ? Convert::raw2sql($query_string['page']) : '';
         $page_size = isset($query_string['items']) ? Convert::raw2sql($query_string['items']) : '';
         $search_term = isset($query_string['term']) ? Convert::raw2sql($query_string['term']) : '';
         $suggested_only = isset($query_string['filter_suggested']) ? Convert::raw2sql($query_string['filter_suggested']) : 0;
         $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));
         }
         list($attendees, $count) = $this->eventbriteattendee_repository->getUnmatchedPaged($search_term, $suggested_only, $page, $page_size);
         $attendees_array = array();
         foreach ($attendees as $attendee) {
             $attendees_array[] = array('name' => $attendee->FirstName . ' ' . $attendee->LastName, 'email' => $attendee->Email, 'eventbrite_id' => $attendee->ExternalAttendeeId, 'amount_paid' => $attendee->Price, 'external_ids' => $attendee->ExternalIds);
         }
         return $this->ok(array('attendees' => $attendees_array, 'count' => $count));
     } 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();
     }
 }