None=>self.query_row("SELECT id, grade, validated, nonvalidated_grade, value, date, needs_validation FROM submission WHERE task = ?1 AND session_user = ?2 ORDER BY id DESC LIMIT 1",&[&task,&session.id],|row|{
Submission{
id:Some(row.get(0)),
task:task,
session_user:session.id,
grade:row.get(1),
validated:row.get(2),
nonvalidated_grade:row.get(3),
subtask_identifier:None,
value:row.get(4),
date:row.get(5),
needs_validation:row.get(6),
}
}).ok(),
Some(subtask_id)=>self.query_row("SELECT id, grade, validated, nonvalidated_grade, value, date, needs_validation FROM submission WHERE task = ?1 AND session_user = ?2 AND subtask_identifier = ?3 ORDER BY id DESC LIMIT 1",&[&task,&session.id,&subtask_id],|row|{
self.query_row("SELECT user, start_date FROM participation JOIN session_user ON session_user.id = user WHERE session_user.session_token = ?1 AND contest = ?2",&[&session,&contest_id],|row|{
matchself.query_row("SELECT user, start_date FROM participation JOIN session_user ON session_user.id = user WHERE session_user.session_token = ?1 AND contest = ?2",&[&session,&contest_id],|row|{()}){
Ok(())=>Err(()),
Err(_)=>{
letnow=time::get_time();
self.execute(
"INSERT INTO participation (contest, user, start_date)
SELECT ?1, id, ?2 FROM session_user WHERE session_token = ?3",