Exemplo n.º 1
0
 protected function syncCourses()
 {
     $em = $this->getEntityManager();
     $courseRepo = $em->getRepository(Course::class);
     $l2p = $this->getClient();
     $owner = $this->getAuthService()->getIdentity();
     $response = $l2p->request('viewAllCourseInfo');
     $courseinfo = json_decode($response['output']);
     if ($response['code'] != 200) {
         return false;
     }
     $result = array('status' => true, 'new' => array());
     foreach ($courseinfo->dataSet as $course) {
         $found = $courseRepo->findOneBy(array('owner' => $owner, 'courseroom' => $course->uniqueid));
         if (!$found) {
             $newCourse = new Course();
             $newCourse->setCourseroom($course->uniqueid);
             $newCourse->setTitle($course->courseTitle);
             $newCourse->setOwner($owner);
             $em->persist($newCourse);
             $em->flush($newCourse);
             $semester = $this->findSemester($course->semester);
             $newEdge = new Edge();
             $newEdge->setFrom($semester)->setTo($newCourse);
             $em->persist($newEdge);
             $em->flush($newEdge);
             $result['new'][] = $newCourse->jsonSerialize();
         }
     }
     return $result;
 }