public function testRefresh()
 {
     $code = new SubjectFaculty();
     $code->setCode('BIOL');
     $code->setCampus('UBC');
     $code->setDepartment('SCIE');
     $code->setFaculty('ARTS');
     $code->setUrn('urn:ubc:subjectCode:BIOL~UBC');
     $code->setTitle('biology');
     $this->getRepository()->refresh(array($code));
     $codes = $this->getRepository()->findAll();
     $this->assertEquals(1, count($codes), 'should purge old data and load the new ones');
 }
Beispiel #2
0
 /**
  * Load data fixtures with the passed EntityManager
  *
  * @param ObjectManager $manager
  */
 function load(ObjectManager $manager)
 {
     $code = new SubjectFaculty();
     $code->setCode('CHIN');
     $code->setCampus('UBC');
     $code->setDepartment('ASIA');
     $code->setFaculty('ARTS');
     $code->setUrn('urn:ubc:subjectCode:CHIN~UBC');
     $code->setTitle('Chinese');
     $manager->persist($code);
     $code = new SubjectFaculty();
     $code->setCode('JAPN');
     $code->setCampus('UBC');
     $code->setDepartment('ASIA');
     $code->setFaculty('ARTS');
     $code->setUrn('urn:ubc:subjectCode:JAPN~UBC');
     $code->setTitle('Japanese');
     $manager->persist($code);
     $manager->flush();
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if ($input->getOption('local')) {
         list($subjectCodes, $departmentCodes) = $this->refreshFromLocal($output);
     } else {
         list($subjectCodes, $departmentCodes) = $this->refreshFromSIS($output);
     }
     $output->writeln('Merging codes...');
     // convert department code array to an associate array for searching by code
     $departmentCodeArray = array();
     foreach ($departmentCodes->codes as $code) {
         $departmentCodeArray[$code->getCode()] = $code;
     }
     $entities = array();
     foreach ($subjectCodes->codes as $code) {
         $scode = new SubjectFaculty();
         $scode->setUrn($code->getId());
         //$scode->setCode($code->getCode());
         // temp fix as sis api missing code value for subject_code API
         $c = explode(':', $code->getId());
         $c = explode('~', $c[3]);
         $scode->setCode($c[0]);
         $scode->setCampus($code->getAdminCampusCode());
         $scode->setDepartment($code->getDepartmentCode());
         $scode->setTitle($code->getFullDescription());
         $deptCode = $code->getDepartmentCode();
         if (!empty($deptCode) && array_key_exists($deptCode, $departmentCodeArray)) {
             $departmentCode = $departmentCodeArray[$deptCode];
             $scode->setFaculty($departmentCode->getAdminFacultyCode());
         }
         $entities[] = $scode;
     }
     $output->writeln('Persisting into database...');
     $em = $this->getContainer()->get('doctrine')->getManager();
     $em->getRepository('UBCExamMainBundle:SubjectFaculty')->refresh($entities);
     $output->writeln('Done! Loaded ' . count($entities) . ' subject codes.');
 }