示例#1
0
 public static function fetchResult(Connection $conn, Area $area, Course $course)
 {
     $data = $conn->fetchAssoc('SELECT r.* ' . 'FROM `' . CourseTables::COURSE_RESULT_TBL . '` r ' . 'INNER JOIN `' . CourseTables::COURSE_AREA_RESULT_TBL . '` a ON a.`courseId` = r.`courseId` AND a.`userId` = r.`userId` ' . 'WHERE a.`areaId` = :areaId AND a.`courseId` = :courseId', array(':areaId' => $area->getId(), ':courseId' => $course->getId()));
     $result = new AreaCourseResult();
     $result->area = $area;
     $result->course = $course;
     $result->result = Question::RESULT_UNKNOWN;
     if (false === $data) {
         return $result;
     }
     DataMappers::fromArray($result, $data);
     return $result;
 }
示例#2
0
 protected function tryRecordingAreaResult(Connection $conn, Area $area, TestTrial $trial)
 {
     $areaResult = AreaCourseResult::fetchResult($conn, $area, $this->course);
     if ($areaResult->result == Question::RESULT_UNKNOWN) {
         $conn->insert(CourseTables::COURSE_AREA_RESULT_TBL, ['areaId' => $area->getId(), 'userId' => $this->user->getId(), 'courseId' => $this->course->getId()]);
         $progress = CourseProgress::fetchByArea($conn, $area);
         $progress->updateResults($conn, $areaResult, $trial);
         return $progress;
     } elseif ($areaResult->result == Question::RESULT_INVALID) {
         $conn->update(CourseTables::COURSE_AREA_RESULT_TBL, ['areaId' => $area->getId(), 'userId' => $this->user->getId(), 'courseId' => $this->course->getId()], ['areaId' => $area->getId(), 'courseId' => $this->course->getId()]);
         $progress = CourseProgress::fetchByArea($conn, $area);
         $progress->updateResults($conn, $areaResult, $trial);
         return $progress;
     }
     return true;
 }
示例#3
0
 private function insertResult(Course $course, Area $area, User $user, $result)
 {
     self::$conn->insert(CourseTables::COURSE_RESULT_TBL, array('userId' => $user->getId(), 'courseId' => $course->getId(), 'trialNumber' => 1, 'startedAt' => time(), 'completedAt' => time(), 'result' => $result, 'totalQuestions' => 0, 'passedQuestions' => 0));
     self::$conn->insert(CourseTables::COURSE_AREA_RESULT_TBL, ['areaId' => $area->getId(), 'userId' => $user->getId(), 'courseId' => $course->getId()]);
 }