public JsonResult AdminGetScore(int id, int limit, int offset, string keyword, string sortOrder, string sortName) { HopuDBDataContext db = new HopuDBDataContext(); string sql = AdminGetSql(id, keyword, sortName, sortOrder); //数据请求 var scoreList = db.ExecuteQuery <UniteTestScore>(sql).ToList(); List <UniteTestScore> score = new List <UniteTestScore>(); //检测到循环引用报错,所以只能暂时这样转换一下,看以后有没有更好的办法 //test foreach (var i in scoreList) { UniteTestScore a = new UniteTestScore() { Id = i.Id, UtId = i.UtId, RealUserName = i.RealUserName, UserName = i.UserName, EndTime = i.EndTime, Score = i.Score }; score.Add(a); } var totalq = score.Count; var rowsq = score.Skip(offset).Take(limit); return(Json(new { total = totalq, rows = rowsq }, JsonRequestBehavior.AllowGet)); }
public bool InsertScore(UniteTestScore uniteTestScoreInfo) { bool flag = false; try { //var uniteTestScore = new UniteTestScore //{ // UtId = uniteTestScoreInfo.UtId, // RealUserName = uniteTestScoreInfo.RealUserName, // UserName = uniteTestScoreInfo.UserName, // EndTime = DateTime.Now, // Score = uniteTestScoreInfo.Score, //}; db.UniteTestScore.InsertOnSubmit(uniteTestScoreInfo); db.SubmitChanges(); if (uniteTestScoreInfo.UtId > 0) { flag = true; } } catch (Exception) { flag = false; throw; } return(flag); }
public JsonResult UifiedTest(string[] Answer, int UtId) { string UserName = User.Identity.GetUserName(); bool commitAnswer = false; //判断时间是否在考试时间段内 var timeInfo = _uniteTest.GetUniteTestInfo(UtId); foreach (var item in timeInfo) { //如果结束时间大于当前时间,可以提交 if (Convert.ToDateTime(item.StartTime).AddMinutes(item.TimeLenth) > DateTime.Now.AddSeconds(-5))//给五秒的冗余时间 否则js倒计时0时提交会失败 { commitAnswer = true; break; } else { return Json(false); } } if (commitAnswer) { //此处和取题目必须一样 List<UnifiedTestNewTopicIdViewModel> answerList = _uniteTestInfo.GetUnifiedTestTopics(UtId, UserName).OrderBy(s => s.TopicID).ToList(); //开始校验答案 List<UnifiedTestQAViewModel> results = new List<UnifiedTestQAViewModel>();//成绩信息 //先算出每题多少分 double itemScore = 100F / answerList.Count; double sumScore = 0; //校验答案 for (int i = 0; i < answerList.Count; i++) { if (answerList[i].Answer.Equals(Answer[i])) { UnifiedTestQAViewModel resultinfo = new UnifiedTestQAViewModel { UserAnswer = Answer[i], RealAnswer = answerList[i].Answer, IsTrue = true }; results.Add(resultinfo); sumScore += itemScore; } else { UnifiedTestQAViewModel resultinfo = new UnifiedTestQAViewModel { UserAnswer = Answer[i], RealAnswer = answerList[i].Answer, IsTrue = false }; results.Add(resultinfo); } } //如果是第一次提交答案 var UniteTestScoreInfo = _uniteTestScore.GetUniteTestScore(UtId, UserName); if (!UniteTestScoreInfo.Any()) { //将考试结果存入数据库 UniteTestScore uniteTestScoreInfo = new UniteTestScore { UtId = UtId, RealUserName = GetRealUserName.GetRealName(User.Identity.GetUserId()), UserName = User.Identity.GetUserName(), EndTime = DateTime.Now, Score = Convert.ToInt32(Math.Round(sumScore, 0, MidpointRounding.AwayFromZero)) }; //如果存入成功 if (_uniteTestScore.InsertScore(uniteTestScoreInfo)) { return Json(results); } } else { return Json(false); } } return Json(false); }