コード例 #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;
 }
コード例 #2
0
 public function sessionQueue(CourseSession $session, User $user)
 {
     $now = new \DateTime();
     $status = 0;
     $validators = $session->getValidators();
     if ($session->getUserValidation()) {
         $status += CourseRegistrationQueue::WAITING_USER;
     }
     if ($session->getOrganizationValidation()) {
         $status += CourseRegistrationQueue::WAITING_ORGANIZATION;
     }
     if (count($validators) > 0) {
         $status += CourseRegistrationQueue::WAITING_VALIDATOR;
     } elseif ($session->getRegistrationValidation()) {
         $status += CourseRegistrationQueue::WAITING;
     }
     $sessionQueue = new CourseSessionRegistrationQueue();
     $sessionQueue->setUser($user);
     $sessionQueue->setSession($session);
     $sessionQueue->setApplicationDate($now);
     $sessionQueue->setStatus($status);
     $this->om->persist($sessionQueue);
     return $sessionQueue;
 }