コード例 #1
0
 public function validateUserSessionRegistrationQueue(CourseSessionRegistrationQueue $queue)
 {
     $results = ['status' => 'success', 'datas' => []];
     $status = $queue->getStatus();
     $user = $queue->getUser();
     $session = $queue->getSession();
     if ($status & CourseRegistrationQueue::WAITING_USER) {
         $status -= CourseRegistrationQueue::WAITING_USER;
         $queue->setStatus($status);
         $queue->setUserValidationDate(new \DateTime());
         $this->persistCourseSessionRegistrationQueue($queue);
         $event = new LogSessionQueueUserValidateEvent($queue);
         $this->eventDispatcher->dispatch('log', $event);
     }
     if ($queue->getStatus() === 0) {
         $results = $this->registerUsersToSession($session, [$user], CourseSessionUser::LEARNER);
         if ($results['status'] === 'success') {
             $this->deleteSessionQueue($queue);
             $this->sendSessionRegistrationConfirmationMessage($user, $session, 'validated');
         } else {
             $queue->setStatus(CourseRegistrationQueue::WAITING);
             $this->persistCourseSessionRegistrationQueue($queue);
         }
     }
     return $results;
 }