public function createCourseSession(Course $course, User $user, $sessionName = null, Cursus $cursus = null, $registrationDate = null, $startDate = null, $endDate = null) { if (is_null($registrationDate)) { $registrationDate = new \DateTime(); } $session = new CourseSession(); $session->setName($sessionName); $session->setCourse($course); $session->addCursu($cursus); $session->setCreationDate($registrationDate); $session->setPublicRegistration($course->getPublicRegistration()); $session->setPublicUnregistration($course->getPublicUnregistration()); $session->setRegistrationValidation($course->getRegistrationValidation()); $session->setStartDate($startDate); $session->setEndDate($endDate); $workspace = $this->generateWorkspace($course, $session, $user); $session->setWorkspace($workspace); $learnerRole = $this->generateRoleForSession($workspace, $course->getLearnerRoleName(), 0); $tutorRole = $this->generateRoleForSession($workspace, $course->getTutorRoleName(), 1); $session->setLearnerRole($learnerRole); $session->setTutorRole($tutorRole); $this->persistCourseSession($session); return $session; }