public function delete()
 {
     $quizId = Input::get('quizId', null);
     if (!$quizId) {
         return Response::error("Quiz not found");
     }
     try {
         $quiz = Quiz::findOrFail($quizId ? $quizId : $quizData['id']);
     } catch (ModelNotFoundException $e) {
         return Response::error("Error finding quiz with id " . $quizId);
     }
     if ($quiz->delete()) {
         return Response::json(array('success' => true));
     } else {
         return Response::error("Some error occured while deleting quiz : '" . $quizId->topic . "'");
     }
 }
 public function quizUsers()
 {
     try {
         $sortOptions = self::processSort();
         $activityType = Input::get('activityType');
         $quizId = Input::get('quizId');
         $users = null;
         if ($quizId) {
             $quiz = Quiz::findOrFail($quizId);
             $quizStats = $quiz->stats;
             $quizResultsDistribution = array();
             $quizResultsDistribution = $quiz->resultDistribution();
             if ($activityType) {
                 $activityOptions = array();
                 if ($activityType == 'got-result') {
                     $activityOptions = array('resultId' => Input::get('resultId'));
                 } else {
                     if ($activityType == 'chosen-answer') {
                         $activityOptions = array('questionId' => Input::get('questionId'), 'answerId' => Input::get('answerId'));
                     }
                 }
                 $usersQuery = self::getUsersQueryByActivity($quiz, $activityType, $activityOptions);
                 $usersQuery = $usersQuery->orderBy($sortOptions['sort'], $sortOptions['sortType']);
                 if (Input::get('download')) {
                     return self::downloadEmails($usersQuery);
                 }
                 $users = $usersQuery->paginate(self::$perPage);
                 //dd(DB::getQueryLog());
                 //dd($users->toArray());
                 self::addSerialNumbers($users);
             }
             $results = $quiz->results;
             $questions = $quiz->questions;
             $quizShareRate = $quizLikeRate = 0;
             if ($quizStats && !empty($quizStats->attempts)) {
                 $quizShareRate = number_format($quizStats->shares / $quizStats->attempts * 100, 2);
                 $quizLikeRate = number_format($quizStats->likes / $quizStats->attempts * 100, 2);
             }
             $last30DaysAttempts = AdminController::getLastNDaysActivity(30, 'attempt', $quiz);
             View::share(array('users' => $users, 'quizId' => $quizId, 'quiz' => $quiz, 'quizResults' => $results, 'quizQuestions' => $questions, 'quizStats' => $quizStats, 'quizShareRate' => $quizShareRate, 'quizLikeRate' => $quizLikeRate, 'last30DaysAttempts' => json_encode($last30DaysAttempts), 'quizResultsDistribution' => $quizResultsDistribution));
         } else {
         }
         View::share(array('activityType' => $activityType, 'resultId' => Input::get('resultId'), 'questionId' => Input::get('questionId'), 'answerId' => Input::get('answerId')));
         QuizController::_loadQuizes();
         return View::make('admin/users/quizUsers')->with(array('currentPage' => 'quizUsers'));
     } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
         return Response::notFound('Quiz not found');
     } catch (Exception $e) {
         return Response::make($e->getMessage(), 400);
     }
 }
 public function saveUserAnswer($nameString, $quizId = null)
 {
     try {
         $quiz = Quiz::findOrFail($quizId);
         $user = Auth::user();
         $questionId = Input::get('questionId');
         $choiceId = Input::get('choiceId');
         if (!$user) {
             return Response::json(array('error' => 'Not logged in'), 400);
         }
         $quizUserAnswer = QuizUserAnswers::firstOrNew(array('user_id' => $user->id, 'quiz_id' => $quiz->id, 'question_id' => $questionId, 'answer_id' => $choiceId));
         $quizUserAnswer->save();
         return Response::json(array('message' => 'Activity recorded'));
     } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
         return Response::notFound('Quiz not found');
     } catch (Exception $e) {
         return Response::notFound($e->getMessage());
     }
 }
 public function show($id)
 {
     $quiz = Quiz::findOrFail($id);
     $menu = 'academic';
     return View::make('quizzes.show', compact('quiz', 'menu'));
 }