$testcase->sortorder = $i;
         if ($testcase->id != -1) {
             $DB->update_record('assignment_oj_testcases', $testcase);
         } else {
             $testcase->id = $DB->insert_record('assignment_oj_testcases', $testcase);
         }
         if ($testcase->usefile) {
             file_save_draft_area_files($testcase->inputfile, $context->id, 'mod_assignment', 'onlinejudge_input', $testcase->id);
             file_save_draft_area_files($testcase->outputfile, $context->id, 'mod_assignment', 'onlinejudge_output', $testcase->id);
         }
         unset($testcase);
     }
     redirect($CFG->wwwroot . '/mod/assignment/view.php?id=' . $id);
 } else {
     $assignmentinstance = new assignment_onlinejudge($cm->id, $assignment, $cm, $course);
     $assignmentinstance->view_header();
     $testcases = $DB->get_records('assignment_oj_testcases', array('assignment' => $assignment->id), 'sortorder ASC');
     $toform = array();
     if ($testcases) {
         $i = 0;
         foreach ($testcases as $tstObj => $tstValue) {
             $toform["input[{$i}]"] = $tstValue->input;
             $toform["output[{$i}]"] = $tstValue->output;
             $toform["feedback[{$i}]"] = $tstValue->feedback;
             $toform["subgrade[{$i}]"] = $tstValue->subgrade;
             $toform["usefile[{$i}]"] = $tstValue->usefile;
             $toform["caseid[{$i}]"] = $tstValue->id;
             file_prepare_draft_area($toform["inputfile[{$i}]"], $context->id, 'mod_assignment', 'onlinejudge_input', $tstValue->id, array('subdirs' => 0, 'maxfiles' => 1));
             file_prepare_draft_area($toform["outputfile[{$i}]"], $context->id, 'mod_assignment', 'onlinejudge_output', $tstValue->id, array('subdirs' => 0, 'maxfiles' => 1));
             $i++;
         }