/**
  * Save question answer
  *
  * @param
  * @return
  */
 function saveQuestionAnswer($a_type, $a_id, $a_answer)
 {
     global $ilUser, $ilLog, $ilDB;
     //$a_type = "assOrderingQuestion";
     //$a_id = 74;
     //$a_answer = '{"tries":1,"wrong":2,"passed":false,"answer":[true,true,false,true,false],"interactionId":null,"choice":["1","2","5","4","3"]}';
     $ilLog->write($a_type);
     $ilLog->write($a_id);
     $ilLog->write($a_answer);
     include_once "./Services/JSON/classes/class.ilJsonUtil.php";
     $answer = ilJsonUtil::decode($a_answer);
     $tries = $answer->tries;
     $passed = $answer->passed;
     $choice = $answer->choice;
     $points = ilPageQuestionProcessor::calculatePoints($a_type, $a_id, $choice);
     $ilLog->write("Points: " . $points);
     $set = $ilDB->query("SELECT * FROM page_qst_answer WHERE " . " qst_id = " . $ilDB->quote($a_id, "integer") . " AND " . " user_id = " . $ilDB->quote($ilUser->getId(), "integer"));
     if ($rec = $ilDB->fetchAssoc($set)) {
         $ilDB->manipulate("UPDATE page_qst_answer SET " . " try = try + 1," . " passed = " . $ilDB->quote($passed, "integer") . "," . " points = " . $ilDB->quote($points, "float") . " WHERE qst_id = " . $ilDB->quote($a_id, "integer") . " AND user_id = " . $ilDB->quote($ilUser->getId(), "integer"));
     } else {
         $ilDB->manipulate("INSERT INTO page_qst_answer " . "(qst_id, user_id, try, passed, points) VALUES (" . $ilDB->quote($a_id, "integer") . "," . $ilDB->quote($ilUser->getId(), "integer") . "," . $ilDB->quote(1, "integer") . "," . $ilDB->quote($passed, "integer") . "," . $ilDB->quote($points, "float") . ")");
     }
     //$ilLog->write("tries: ".$tries);
     //$ilLog->write("passed: ".$passed);
     //$ilLog->write("points: ".$points);
     exit;
 }