コード例 #1
0
 public function addUserToSessionQueue(User $user, CourseSession $session)
 {
     $sessionUser = $this->getOneSessionUserBySessionAndUserAndType($session, $user, 0);
     if (is_null($sessionUser)) {
         $queue = $this->getOneSessionQueueBySessionAndUser($session, $user);
         if (is_null($queue)) {
             $queue = new CourseSessionRegistrationQueue();
             $queue->setSession($session);
             $queue->setUser($user);
             $queue->setApplicationDate(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;
             }
             $queue->setStatus($status);
             $this->om->persist($queue);
             $this->om->flush();
             $event = new LogSessionQueueCreateEvent($queue);
             $this->eventDispatcher->dispatch('log', $event);
             $this->sendSessionRegistrationConfirmationMessage($user, $session, 'pending');
             if (($status & CourseRegistrationQueue::WAITING_USER) === CourseRegistrationQueue::WAITING_USER) {
                 $this->sendSessionQueueRequestConfirmationMail($queue);
             }
         }
     }
 }
コード例 #2
0
 public function addUserToSessionQueue(User $user, CourseSession $session)
 {
     $sessionUser = $this->getOneSessionUserBySessionAndUserAndType($session, $user, 0);
     if (is_null($sessionUser)) {
         $queue = $this->getOneSessionQueueBySessionAndUser($session, $user);
         if (is_null($queue)) {
             $queue = new CourseSessionRegistrationQueue();
             $queue->setSession($session);
             $queue->setUser($user);
             $queue->setApplicationDate(new \DateTime());
             $this->om->persist($queue);
             $this->om->flush();
         }
     }
 }
コード例 #3
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;
 }