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); } } } }
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(); } } }
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; }