Esempio n. 1
0
        /// <summary>
        ///     获取考试的基本信息
        /// </summary>
        /// <param name="examUserID">考试人员ID</param>
        /// <param name="type">0:独立的考试</param>
        /// <returns></returns>
        public ExamBaseInforShow GetExamBaseInforShow(int examUserID, int type = 0)
        {
            var examBaseInfor = new ExamBaseInforShow();
            var examuser      = Etdb.GetSingleByID <tbExamSendStudent>(examUserID); //考生考试信息

            if (type == 0)
            {
                var exam = Etdb.GetSingleByID <tbExamination>(examuser.RelationID);
                examBaseInfor.ExamEndTime = exam.ExamEndTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
                examBaseInfor.ExamLength  = exam.ExamLength;
                var paper = Etdb.GetSingleByID <tbExampaper>(exam.PaperID);
                if (paper.ExamType == 0)
                {
                    examBaseInfor.ExamScore = exam.PercentFlag == 0 ? 100 : paper.QuestionList.Sum(p => p.QScore);
                }
                else
                {
                    examBaseInfor.ExamScore = exam.PercentFlag == 0 ? 100 : paper.ExampaperScore;
                }
                examBaseInfor.ExamShowWay   = exam.ShowType;
                examBaseInfor.ExamStartTime = exam.ExamBeginTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
                examBaseInfor.ExamTitle     = exam.ExaminationTitle;
                examBaseInfor.PassScore     = exam.PercentFlag == 0 ? Convert.ToInt32(exam.PassScore) : Convert.ToInt32(exam.PassScore * examBaseInfor.ExamScore / 100);
                examBaseInfor.PercentScore  = exam.PercentFlag;
                examBaseInfor.ResultFlag    = exam.PublishResult;
            }
            else
            {
                if (examuser != null)
                {
                    var coursepaper = ICoCoursePaperBL.GetCo_CourseMainPaper(examuser.RelationID);
                    examBaseInfor.ExamLength = coursepaper.Length;

                    var course          = ICourseBL.GetCo_Course(examuser.RelationID);
                    var Sys_ParamConfig = ISysParamConfigBL.GetSys_ParamConfig(26);
                    //examBaseInfor.ExamScore = coursepaper.TotalScore;
                    examBaseInfor.ExamStartTime = course.EndTimeStr;
                    examBaseInfor.ExamEndTime   = course.EndTime.AddHours(Convert.ToDouble(Sys_ParamConfig.ConfigValue.Split(';')[0])).ToString("yyyy-MM-dd HH:mm");
                    //var exam = Etdb.GetSingleByID<tbExamination>(examuser.RelationID);
                    var paper = Etdb.GetSingleByID <tbExampaper>(examuser.ExamPaperID);
                    examBaseInfor.PassScore = Convert.ToInt32(coursepaper.LevelScore * 0.01 * paper.ExampaperScore);//考试通过分数线
                    if (paper.ExamType == 0)
                    {
                        examBaseInfor.ExamScore = paper.QuestionList.Sum(p => p.QScore);
                    }
                    else
                    {
                        examBaseInfor.ExamScore = paper.ExampaperScore;
                    }
                }
            }


            return(examBaseInfor);
        }
Esempio n. 2
0
        /// <summary>
        ///     判断是否可以进入考试
        /// </summary>
        /// <param name="euID">考试人员ID</param>
        /// <param name="flag">0:列表进入;1:真正进入</param>
        /// <returns></returns>
        public JsonResult JudgeCanExamTest(int euID, int flag)
        {
            tbExamSendStudent eu = ExamTestBL.GetExamUser(euID);

            //当SourceType不等于0的时候 表示是课程下的考试
            //if (eu.SourceType == 0)
            //{
            if (eu.SourceType == 0)
            {
                tbExamination exam = ExaminationBL.GetExamination(eu.RelationID);
                if (eu.TestTimes >= exam.TestTimes)
                {
                    return(Json(new { result = 0, message = "进入次数已达到上限!" }, JsonRequestBehavior.AllowGet));
                }
                if (exam.ExamEndTime.ToLocalTime() <= DateTime.Now)
                {
                    return(Json(new { result = 0, message = "本场考试已经结束,不可进入!" }, JsonRequestBehavior.AllowGet));
                }
                eu.TestTimes += 1;
                if (flag == 1)
                {
                    ExamTestBL.SaveExamUser(eu);
                }
            }
            //}
            else
            {
                var coursepaper = ICoCoursePaperBL.GetCo_CourseMainPaper(eu.RelationID);
                if (eu.TestTimes >= coursepaper.TestTimes)
                {
                    return(Json(new { result = 0, message = "进入次数已达到上限!" }, JsonRequestBehavior.AllowGet));
                }
                eu.TestTimes += 1;
                if (flag == 1)
                {
                    ExamTestBL.SaveExamUser(eu);
                }
                //ICoCoursePaperBL.UpdateTestTimes(eu.RelationID);
            }
            return(Json(new { result = 1 }, JsonRequestBehavior.AllowGet));
        }