public async Task <ExamRecordInfo> CorrectExam(ExamSubmitInfo submitInfo) { ExamRecordInfo recordInfo = GetRecordInfo(submitInfo); recordInfo.QuestionRecords = GetQuestionRecord(submitInfo.details); return(_recordApp.AddRecord(recordInfo)); }
private DateTime GeneralUseTime(ExamSubmitInfo submitInfo) { string leftTime = submitInfo.leftTime.Replace(':', '.'); double time1 = StringUtil.GetDouble(leftTime); ExamPaperInfo examPaper = _examPaperApp.Load(submitInfo.examId); double time2 = StringUtil.GetDouble(string.Format("{0}.60", examPaper.ExamMinute - 1)) - time1; string[] lt = time2.ToString("N2").Split('.'); return(DateTime.Now.AddMinutes(StringUtil.GetInt(lt[0]) * -1).AddSeconds(StringUtil.GetInt(lt[1]) * -1)); }
private double GeneralScore(ExamSubmitInfo submitInfo) { double score = 0; foreach (ExamDetailSubmitInfo detail in submitInfo.details) { score += GeneralSolutionScore(detail); } return(score); }
private void CheckIsPassed(ExamRecordInfo recordInfo, ExamSubmitInfo submitInfo) { if (recordInfo == null || submitInfo == null) { return; } ExamPaperInfo examPaper = _examPaperApp.Load(submitInfo.examId); double totalScore = examPaper.ExamScore; double passedScore = totalScore * 0.6; recordInfo.IsPassed = recordInfo.ExamScore >= passedScore; }
private ExamRecordInfo GetRecordInfo(ExamSubmitInfo submitInfo) { ExamRecordInfo recordInfo = new ExamRecordInfo(); recordInfo.ExamPaperId = submitInfo.examId; recordInfo.LeftTime = submitInfo.leftTime; //string[] lt = recordInfo.LeftTime.Split(':'); //DateTime beginTime = DateTime.Now.AddMinutes(StringUtil.GetInt(lt[0]) * -1).AddSeconds(StringUtil.GetInt(lt[1]) * -1); DateTime beginTime = GeneralUseTime(submitInfo); recordInfo.BeginTime = beginTime; recordInfo.ExamScore = GeneralScore(submitInfo); CheckIsPassed(recordInfo, submitInfo); recordInfo.CreateUser = _loginUser; return(recordInfo); }