/// <summary> /// 在线学习-[单元测试]提交 /// </summary> /// <returns></returns> public ActionResult LearnOnLineQuizEdit(List<Member_CourseContentAnswerOther> listOther) { string strVerson = string.Empty; int iClassId = 0, iAccountId = 0, iPlanId = 0, iResultId = 0, iUnitContent = 0, iTrainingId = 0, iQuestionCnt = 0, iRightCount = 0, iWrongCount = 0; double dblScoreTotal = 0, dblGetScore = 0, dblResultScore = 0; var stbSqlWhere = new StringBuilder(); //获取 答题总数,答题正确的个数,答题错误的个数,结果 iQuestionCnt = listOther.Count;//总题数 bool bolResult = false; var unitQuesBll = new Course_UnitQuestionBLL(); var CourseContentAnswerBll = new Member_CourseContentAnswerBLL(); var unitBll = new Course_UnitContentBLL(); var Member_ClassUnitContentSchedulebll = new Member_ClassUnitContentScheduleBLL(); iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; iPlanId = Code.SiteCache.Instance.PlanId; //获取[单元测试]总得分 foreach (var item in listOther) { //获取该题目的正确答案 var Model_Ques = unitQuesBll.GetModel(item.Id, string.Empty); if (!string.IsNullOrEmpty(item.Credits)) { double dblCre = 0; double.TryParse(item.Credits, out dblCre); dblScoreTotal += dblCre;//获取所有题目的答案的总得分 if (item.Answer == Model_Ques.Answer) { iRightCount++;//正确答题数 dblResultScore += dblCre;//用户得分 } else iWrongCount++;//错误答题数 strVerson = item.Verson;//题目版本号,一批题目的版本号都一样 iUnitContent = item.UnitContentId;//一批题目的UnitContentId都一样 iClassId = item.ClassId;//一批题目的ClassId都一样 iTrainingId = item.TrainingId;//一批题目的TrainingId都一样 } } //若课程已结束禁止操作 if (this.GetCourseIsOver(iClassId, iTrainingId, iAccountId)) return Json(new { Result = true, Msg = "提交失败.当前课程已结束,不能执行该操作!" }, JsonRequestBehavior.AllowGet); ////查看当前活动是否已打分,若已打分则禁止操作[待删除.打分操作为自动打分,不作为判断条件] //if (this.GetActivityScore(iClassId, iTrainingId, iAccountId, iUnitContent)) // return Json(new { Result = false, Msg = "提交失败.当前活动已打分,不能执行该操作!" }, JsonRequestBehavior.AllowGet); //提交时,判断其剩余考试次数 stbSqlWhere.AppendFormat(@"UnitContent = {0} AND ClassId = {1} AND AccountId = {2} AND Delflag = 0", iUnitContent, iClassId, iAccountId); var ResultBll = new Member_ContentAnswerResultBLL(); var List_Member_ContentAnswerResult = ResultBll.GetList(stbSqlWhere.ToString()); int iRowsCount = List_Member_ContentAnswerResult.Tables[0].Rows.Count;//获取已考试的次数 var model = unitBll.GetModel(iUnitContent, string.Empty); if (iRowsCount >= model.TestCnt && model.TestCnt != -1) { return Json(new { Result = false, Msg = "试题提交失败。你的单元测试 - [ " + model.Title + " ] 剩余答题次数不足!" }, JsonRequestBehavior.AllowGet); } var ResultModel = new Member_ContentAnswerResult(); ResultModel.Verson = strVerson; ResultModel.UnitContent = iUnitContent; ResultModel.ClassId = iClassId; ResultModel.Score = decimal.Parse(dblResultScore.ToString());//用户的答题得分 ResultModel.QuestionCnt = iQuestionCnt; ResultModel.RightAnswer = iRightCount; ResultModel.WrongAnswer = iWrongCount; ResultModel.Result = bolResult; ResultModel.AccountId = iAccountId; ResultModel.Delflag = false; ResultModel.CreateDate = DateTime.Now; //将数据插入到总分表 bool bolRes = this.InsertMember_ContentAnswerResult(ResultModel, out iResultId); if (bolRes) { foreach (var itemQues in listOther) { //获取该题目的正确答案 var Model_Ques = unitQuesBll.GetModel(itemQues.Id, string.Empty); double dblGetCreTmp = 0; double.TryParse(itemQues.Credits, out dblGetCreTmp); //将用户的[单元测试]答案保存 Member_CourseContentAnswer Model_Answer = new Member_CourseContentAnswer(); Model_Answer.AnswerResult = iResultId; Model_Answer.Question = itemQues.Id; Model_Answer.Answer = itemQues.Answer; Model_Answer.Result = Model_Ques.Answer == itemQues.Answer;//比对正确答案 dblGetScore += Model_Ques.Answer == itemQues.Answer ? dblGetCreTmp : 0;//当前学员答题得分 Model_Answer.AccountId = iAccountId; Model_Answer.Delflag = false; Model_Answer.CreateDate = DateTime.Now; //将数据插入到学员答题内容表,用户的[课程评价]答案保存 bolRes = CourseContentAnswerBll.Add(Model_Answer); } } if (bolRes) { //更新总进度 this.UpdateOverallProgress(model.UnitId.Value, iClassId, iTrainingId, iAccountId, iUnitContent); //查询该学员的[单元测试]的成绩中最大分数的数据对象 var Model_ActivityMaxScore = this.GetActivityMaxScore(iClassId, iTrainingId, iAccountId, iUnitContent); if (Model_ActivityMaxScore != null) { var strWhere_Activity = string.Format(@" Status = 1 AND Delflag = 0 AND ClassId = {0} AND TrainingId = {1} AND AccountId = {2} AND UnitContent IN ({3})", iClassId, iTrainingId, iAccountId, iUnitContent); var List_ClassUnitContentSchedule = Member_ClassUnitContentSchedulebll.GetList(strWhere_Activity, "Id"); if (List_ClassUnitContentSchedule != null && List_ClassUnitContentSchedule.Count == 1) { var Model_ClassUnitContentSchedule = List_ClassUnitContentSchedule[0]; ScoreSetHelper.ScoreSet(Model_ClassUnitContentSchedule.Id, 4, iClassId, iPlanId, iAccountId, Model_ActivityMaxScore.Score.ToDouble(), Model_ClassUnitContentSchedule.score == null); } } return Json(new { Result = true, Msg = "单元测试提交成功!", TotalScore = dblGetScore }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "单元测试提交失败!" }, JsonRequestBehavior.AllowGet); } }
public ActionResult EditUnitQuestion(Course_Question model) { Course_UnitQuestionBLL bll = new Course_UnitQuestionBLL(); if (bll.UpdateCourseQuestion(model)) { return Json(new { Result = true, Msg = "修改成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "修改失败!" }, JsonRequestBehavior.AllowGet); } }
/// <summary> /// 获取[单元测试]题目信息 /// </summary> /// <param name="iUnitContentId"></param> /// <param name="strVerson"></param> /// <returns></returns> private List<Course_UnitQuestion> GetQuizCourseUnitTest(int iUnitContentId = 0, string strVerson = "") { var List_Course_UnitQuestion = new List<Course_UnitQuestion>(); var UnitQuestionBll = new Course_UnitQuestionBLL(); var strOrderBy = "CreateDate"; var stbSqlWhere = new StringBuilder(); if (!string.IsNullOrEmpty(strVerson)) { stbSqlWhere.AppendFormat(" UnitContent = {0} AND Verson = '{1}'", iUnitContentId, strVerson); } else { stbSqlWhere.Append(" Display = 1 AND Delflag = 0 AND UnitContent = " + iUnitContentId); } List_Course_UnitQuestion = UnitQuestionBll.GetList(stbSqlWhere.ToString(), strOrderBy); ViewBag.List_Course_UnitQuestion = List_Course_UnitQuestion; ViewBag.QuizQuestionCount = List_Course_UnitQuestion.Count; return List_Course_UnitQuestion; }
public ActionResult CourseActivityQuizEdit(int TrainingId, int UnitId) { //ViewBag.Title = "测试编辑"; Course_DetailBLL bll_CourseDetail = new Course_DetailBLL(); Course_UnitContentBLL bll = new Course_UnitContentBLL(); Course_UnitQuestionBLL bll_UnitQuestion = new Course_UnitQuestionBLL(); //指定课程的课程ID ViewBag.TrainingId = TrainingId; //获取指定课程ID对应的课程单元信息 ViewBag.TrainingInfo = bll_CourseDetail.GetTrainingInfoById(Convert.ToInt32(TrainingId)); //获取测试Model ViewBag.ActivityQuizModel = bll.GetModel(Convert.ToInt32(UnitId), "Delflag = 0"); //指定单元活动是否已经添加试题 ViewBag.IsExistsQuizQues = bll_UnitQuestion.IsExistsQuizQues(Convert.ToInt32(UnitId)); return View(); }
public ActionResult DeleteUnitQuestion(int id) { Course_UnitQuestionBLL bll = new Course_UnitQuestionBLL(); if (bll.Delete(id)) { return Json(new { Result = true, Msg = "删除成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "删除失败!" }, JsonRequestBehavior.AllowGet); } }
public ActionResult AddQuizQues(Course_UnitQuestion model) { Course_UnitQuestionBLL bll = new Course_UnitQuestionBLL(); if (bll.Add(model)) { return Json(new { Result = true, Msg = "新增成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "新增失败!" }, JsonRequestBehavior.AllowGet); } }
public ActionResult TestExeclTemp(int UnitContent) { Course_UnitQuestionBLL course_UnitQuestionBLL = new Course_UnitQuestionBLL(); string msg = ""; HttpPostedFileBase excel = Request.Files[0]; string fileName = Server.MapPath(Code.UploadCore.UploadAttach(excel, ref msg)); int GroupId = Code.SiteCache.Instance.GroupId; int OrganId = Code.SiteCache.Instance.ManageOrganId; DataTable dt = ReadExcel(fileName); if (dt.Columns[0].ColumnName.ToString() != "类型" || dt.Columns[1].ColumnName.ToString() != "题目内容" || dt.Columns[2].ColumnName.ToString() != "答案内容" || dt.Columns[3].ColumnName.ToString() != "正确答案序号" || dt.Columns[4].ColumnName.ToString() != "权重") { return Content("no:导入的格式不正确!"); } else { List<Course_UnitQuestion> list = new List<Course_UnitQuestion>(); if (dt.Rows.Count == 0) { return Content("no:无导入数据!"); } else { for (int i = 0; i < dt.Rows.Count; i++) { try { for (int k = 0; k < dt.Columns.Count; k++) { if (string.IsNullOrEmpty(dt.Rows[i][k].ToString())) { return Content("no:导入的数据有空值!"); } } Course_UnitQuestion model = new Course_UnitQuestion(); model.UnitContent = UnitContent; model.Verson = "-1"; if (dt.Rows[i][2].ToString().Trim().IndexOf(',') > 0) { string[] Questions = dt.Rows[i][2].ToString().Trim().Split(','); model.Question = "["; for (int c = 0; c < Questions.Length; c++) { model.Question += "{Id:" + (c + 1) + ",Content:'" + Questions[c] + "'},"; } model.Question = model.Question.TrimEnd(',') + "]"; } else { model.Question = dt.Rows[i][2].ToString().Trim(); } switch (dt.Rows[i][0].ToString().Trim()) { case "单选题": model.QTtype = 1; break; case "多选题": model.QTtype = 2; break; case "判断题": model.QTtype = 3; model.Question = "[{Id:1,Content:'1'},{Id:2,Content:'0'}]"; break; default: break; } model.Content = dt.Rows[i][1].ToString().Trim(); model.Answer = dt.Rows[i][3].ToString().Trim(); if (Regex.IsMatch(dt.Rows[i][4].ToString(), @"^[+-]?\d*[.]?\d*$")) { model.Credit = Convert.ToDouble(dt.Rows[i][4]); } else { return Content("no:权重必须是数字类型!"); } if (dt.Rows[i][4].ToString().Length > 2) { return Content("no:权重数字长度不能超过五位数!"); } if (dt.Rows[i][4].ToString() == "0") { return Content("no:第" + (i + 1) + "行的权重不能为0!"); } model.Display = true; model.Delflag = false; model.CreateDate = DateTime.Now; list.Add(model); } catch (Exception ex) { return Content("no:" + ex); } } int count = course_UnitQuestionBLL.AddExem(list); if (count > 0) { return Content("yes:成功导入" + list.Count + "行数据"); } else { return Content("no:导入失败"); } } } }
public ActionResult SetQuizVerson(int UnitContent) { Course_UnitQuestionBLL bll = new Course_UnitQuestionBLL(); if (bll.SetVerson(UnitContent)) { return Json(new { Result = true, Msg = "您已经完成单元活动测试试题制作!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "单元活动测试试题制作失败!" }, JsonRequestBehavior.AllowGet); } }
public ActionResult QuizQuesModel(int Id) { Course_UnitQuestion model = new Course_UnitQuestionBLL().GetModel(Id, "Display = 1 and Delflag = 0"); return Json(new { Data = model }, JsonRequestBehavior.AllowGet); }
/// <summary> /// 获取[单元测试]题目信息 /// </summary> /// <returns></returns> private List<Course_UnitQuestion> GetQuizCourseUnitTest(int iUnitContentId = 0) { var List_Course_UnitQuestion = new List<Course_UnitQuestion>(); var UnitQuestionBll = new Course_UnitQuestionBLL(); var strOrderBy = "CreateDate"; var stbSqlWhere = new StringBuilder(); stbSqlWhere.Append("Display = 1 AND Delflag = 0 AND UnitContent = " + iUnitContentId); List_Course_UnitQuestion = UnitQuestionBll.GetList(stbSqlWhere.ToString(), strOrderBy); ViewBag.List_Course_UnitQuestion = List_Course_UnitQuestion; ViewBag.QuizQuestionCount = List_Course_UnitQuestion.Count; return List_Course_UnitQuestion; }