コード例 #1
0
        public async Task <ExamRecordInfo> CorrectExam(ExamSubmitInfo submitInfo)
        {
            ExamRecordInfo recordInfo = GetRecordInfo(submitInfo);

            recordInfo.QuestionRecords = GetQuestionRecord(submitInfo.details);
            return(_recordApp.AddRecord(recordInfo));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        private double GeneralScore(ExamSubmitInfo submitInfo)
        {
            double score = 0;

            foreach (ExamDetailSubmitInfo detail in submitInfo.details)
            {
                score += GeneralSolutionScore(detail);
            }
            return(score);
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
        }