<?php namespace App\View\Components; use Illuminate\View\Component; use Modules\Quiz\Entities\OnlineQuiz; use Modules\Quiz\Entities\QuizeSetup; use Modules\Quiz\Entities\QuizTestDetails; class QuizResultPreviewPageSection extends Component { public $quizTest, $user, $course; public function __construct($quizTest, $user, $course) { $this->quizTest = $quizTest; $this->user = $user; $this->course = $course; } public function render() { $quizSetup = QuizeSetup::getData(); $quiz = OnlineQuiz::with('assign.questionBank', 'assign.questionBank.questionMu')->findOrFail($this->quizTest->quiz_id); $questions = []; foreach (@$quiz->assign as $key => $assign) { $questions[$key]['qus'] = $assign->questionBank->question; $questions[$key]['type'] = $assign->questionBank->type; $test = QuizTestDetails::where('quiz_test_id', $this->quizTest->id)->where('qus_id', $assign->questionBank->id)->first(); $questions[$key]['isSubmit'] = false; $questions[$key]['isWrong'] = false; if ($assign->questionBank->type != "M") { if ($test) { $questions[$key]['isSubmit'] = true; if ($test->status == 0) { $questions[$key]['isWrong'] = true; } $questions[$key]['answer'] = $test->answer; } } else { foreach (@$assign->questionBank->questionMuInSerial as $key2 => $option) { $questions[$key]['option'][$key2]['title'] = $option->title; $questions[$key]['option'][$key2]['right'] = $option->status == 1 ? true : false; if ($test) { $questions[$key]['isSubmit'] = true; $totalAns = $test->answers->where('ans_id', $option->id); $totalAnsCount = $totalAns->count(); $wrong = $totalAns->where('status', 0)->count(); if ($test->status == 0 && $wrong != 0) { $questions[$key]['option'][$key2]['wrong'] = $test->status == 0 ? true : false; $questions[$key]['isWrong'] = true; } if ($totalAnsCount == 0) { $questions[$key]['isWrong'] = true; } } } } if (!$questions[$key]['isSubmit']) { $questions[$key]['isWrong'] = true; } } return view(theme('components.quiz-result-preview-page-section'), compact('questions', 'quizSetup')); } }