public JsonResult GetSelfScore(int limit, int offset, string keyword, string sortOrder, string sortName) { HopuDBDataContext db = new HopuDBDataContext(); string UserName = User.Identity.GetUserName(); string sql = GetSelfSql(UserName, keyword, sortName, sortOrder); //数据请求 var scoreList = db.ExecuteQuery <SelfTestScore>(sql).ToList(); List <SelfTestScore> score = new List <SelfTestScore>(); foreach (var i in scoreList) { SelfTestScore a = new SelfTestScore() { Id = i.Id, StId = i.StId, 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 JsonResult SelfTest(string[] Answer, long stId) { HopuDBDataContext db = new HopuDBDataContext(); //判断时间是否在考试时间段内 bool commitAnswer = false; string userName = User.Identity.GetUserName(); if (!stId.ToString().Substring(0, 10).Equals(userName)) { return(Json(stId + "不存在!")); } var timeInfo = db.SelfTest.Where(a => a.StId == stId).Select(a => a); 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) { //据stId获取答案 var topicListResult = db.SelfTestInfo.Where(a => a.StId == stId).ToList().Select(c => new SelfTestNewTopicIdViewModel { TopicID = ToHmacsha1(c.TopicID.ToString(), userName), Answer = c.Answer, }); //答案集合 List <SelfTestNewTopicIdViewModel> AnswerList = topicListResult.OrderBy(s => s.TopicID).ToList(); //开始校验答案 List <SelfTestQAViewModel> result = new List <SelfTestQAViewModel>(); //先算出每题多少分 double itemScore = 100F / AnswerList.Count; double sumScore = 0; //校验答案 for (int i = 0; i < AnswerList.Count; i++) { if (AnswerList[i].Answer.Equals(Answer[i])) { SelfTestQAViewModel resultinfo = new SelfTestQAViewModel { UserAnswer = Answer[i], RealAnswer = AnswerList[i].Answer, IsTrue = true }; result.Add(resultinfo); sumScore += itemScore; } else { SelfTestQAViewModel resultinfo = new SelfTestQAViewModel { UserAnswer = Answer[i], RealAnswer = AnswerList[i].Answer, IsTrue = false }; result.Add(resultinfo); } } var selfTestScoreInfo = db.SelfTestScore.FirstOrDefault(a => a.StId == stId && a.UserName == User.Identity.GetUserName()); //如果是第一次提交答案 if (selfTestScoreInfo == null) { //将考试结果存入数据库 var selfTestScore = new SelfTestScore { StId = stId, RealUserName = GetRealUserName.GetRealName(User.Identity.GetUserId()), UserName = userName, EndTime = DateTime.Now, Score = Convert.ToInt32(Math.Round(sumScore, 0, MidpointRounding.AwayFromZero)) }; db.SelfTestScore.InsertOnSubmit(selfTestScore); db.SubmitChanges(); } else { return(Json(false)); } return(Json(result)); } return(Json(false)); }