/// <summary> /// lấy danh sách kết quả thi trong 1 course của 1 sinh viên /// </summary> /// <param name="markcode"></param> /// <param name="coursecode">mã lớp môn học</param> /// <returns></returns> public JsonResult GetResult(string markcode, string coursecode) { // List <Exam> liExam = new List <Exam>(); // lấy danh sách các lần thi của sinh viên trong 1 lớp học EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); List <fieldpara> lipa = new List <fieldpara> { new fieldpara("MARKCODE", markcode, 0), new fieldpara("COURSECODE", coursecode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0) }; var liExamHallStudent = bus.getAllBy2("CODE", lipa.ToArray()); // lấy điểm cụ thể của từng đợt thi if (liExamHallStudent != null) { EXAMRESULT_BUS examresultBus = new EXAMRESULT_BUS(); foreach (var item in liExamHallStudent) { Exam exam = new Exam { ExamHallStudentCode = item.CODE }; // lấy tên đợt thi string examTimeName = item._EXAMTIMECODE.NAME; exam.Name = examTimeName; // danh sách các câu hỏi và điểm trong bài thi List <Question> liQuestion = new List <Question>(); var liExamReSult = examresultBus.getAllBy2("QUESTIONCODE", new fieldpara("EXAMHALLSTUDENTCODE", item.CODE, 0)); for (int i = 0; i < liExamReSult.Count - 1; i++) { double totalMark = 0; var questiongroupcode = liExamReSult[i].QUESTIONGROUPCODE; string questionName = liExamReSult[i]._QUESTIONGROUPCODE.NAME; if (!string.IsNullOrEmpty(questiongroupcode)) { totalMark += liExamReSult[i].MARK; liExamReSult[i].QUESTIONGROUPCODE = ""; for (int j = i + 1; j < liExamReSult.Count; j++) { if (liExamReSult[j].QUESTIONGROUPCODE == questiongroupcode) { totalMark += liExamReSult[j].MARK; liExamReSult[j].QUESTIONGROUPCODE = ""; } } } if (!string.IsNullOrEmpty(questiongroupcode)) { Question question = new Question { QuestionGroupCode = questiongroupcode, Mark = totalMark, Name = questionName }; liQuestion.Add(question); } } exam.ListQuestion = liQuestion; liExam.Add(exam); examresultBus.CloseConnection(); } } bus.CloseConnection(); return(Json(new { data = liExam }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Lấy ra chi tiết của một bài thi dựa vào mã sinh viên trong bảng điểm lớp môn học và mã học kì /// </summary> /// <param name="markcode">mã sinh viên trong lớp môn học</param> /// <param name="examtimecode">mã học kì </param> /// <returns></returns> public JsonResult GetDetailExam(string markcode, string examtimecode) { if (string.IsNullOrEmpty(markcode)) { markcode = "1708310001"; } int ret = 0; int numberQuestion = 0; MARK_BUS markbus = new MARK_BUS(); MARK_OBJ objmark = markbus.GetByID(new MARK_OBJ.BusinessObjectID(markcode));//markbus.GetByKey(new fieldpar("STUDENTCODE", _ses.loginCode, 0),new fieldpara("COURSECODE", courseCode, 0)); markbus.CloseConnection(); if (objmark == null) { ret = -7; } EXAMHALLSTUDENT_OBJ obj = new EXAMHALLSTUDENT_OBJ(); if (ret >= 0) { EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); if (objmark != null) { obj = bus.GetByKey(new fieldpara("MARKCODE", objmark.CODE, 0), new fieldpara("examtimecode", examtimecode)); } bus.CloseConnection(); } //Lấy được một lần thi if (obj == null) { ret = -1; } EXAMFORM_BUS busExamform = new EXAMFORM_BUS(); EXAMFORM_OBJ objExamform = null; //Lấy đề thi if (ret >= 0) { if (obj != null) { objExamform = busExamform.GetByID((new EXAMFORM_OBJ.BusinessObjectID(obj.EXAMFORMCODE))); } busExamform.CloseConnection(); if (objExamform == null) { ret = -2; } } //Danh sachs cau truc EXAMFORMDETAIL_BUS busExamformdetail = new EXAMFORMDETAIL_BUS(); List <EXAMFORMDETAIL_OBJ> liExamformdetail = new List <EXAMFORMDETAIL_OBJ>(); if (ret >= 0) { if (objExamform != null) { liExamformdetail = busExamformdetail.getAllBy2("THEORDER", new fieldpara("EXAMFORMCODE", objExamform.CODE)); } busExamformdetail.CloseConnection(); if (liExamformdetail == null) { ret = -3; } } List <fieldpara> lipa = new List <fieldpara>(); List <jointable> lijoin = new List <jointable>(); //Lay danh sach cac nhom cau hoi QUESTIONGROUP_BUS busQuestiongroup = new QUESTIONGROUP_BUS(); List <QUESTIONGROUP_OBJ> liQuestiongroup = new List <QUESTIONGROUP_OBJ>(); if (ret >= 0) { if (objExamform != null) { lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "CODE", "QUESTIONGROUPCODE", new fieldpara("EXAMFORMCODE", objExamform.CODE))); } liQuestiongroup = busQuestiongroup.getAllBy2("CODE", lipa, lijoin); if (liQuestiongroup == null) { ret = -4; } busQuestiongroup.CloseConnection(); } //Lay danh sach cau hoi QUESTION_BUS busQuestion = new QUESTION_BUS(); List <QUESTION_OBJ> listQuestionreturn = new List <QUESTION_OBJ>(); if (ret >= 0) { lijoin.Clear(); if (objExamform != null) { lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE", "QUESTIONGROUPCODE", new fieldpara("examformcode", objExamform.CODE))); } var liQuestion = busQuestion.getAllBy2("CODE", lipa, lijoin); if (liQuestion == null) { ret = -5; } else { foreach (var objQuestion in liQuestion) { QUESTION_OBJ objTemp = new QUESTION_OBJ(); objTemp.CODE = objQuestion.CODE; objTemp.ANSWERCODE = null; objTemp.CONTENT = objQuestion.CONTENT; objTemp.QUESTIONGROUPCODE = objQuestion.QUESTIONGROUPCODE; objTemp._QUESTIONGROUPCODE = objQuestion._QUESTIONGROUPCODE; objTemp._ID = objQuestion._ID; listQuestionreturn.Add(objTemp); } numberQuestion = liQuestion.Count; } busQuestion.CloseConnection(); } //Lay danh danh cac dap an ANSWER_BUS busAnswer = new ANSWER_BUS(); List <ANSWER_OBJ> liAnswer = new List <ANSWER_OBJ>(); if (ret >= 0) { lijoin.Clear(); if (objExamform != null) { lijoin.Add((new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE", "QUESTIONGROUPCODE", new fieldpara("examformcode", objExamform.CODE)))); } liAnswer = busAnswer.getAllBy2("CODE", lipa, lijoin); if (liAnswer == null) { ret = -6; } busAnswer.CloseConnection(); } //get list exam result in case student lost the internet EXAMRESULT_BUS busExamresult = new EXAMRESULT_BUS(); List <EXAMRESULT_OBJ> liExamresult = new List <EXAMRESULT_OBJ>(); if (ret >= 0) { if (obj != null) { liExamresult = busExamresult.getAllBy2(new fieldpara("examhallstudentcode", obj.CODE)); } busExamresult.CloseConnection(); } var jsonResult = Json(new { numberQuestion, //so luong cau hoi ObjexamHallstudent = obj, //examhallstudent code ObjexamForm = objExamform, //examform liExamformDetail = liExamformdetail, //Danh sách examdetail liQuestiongroup, //danh sach nhom cau hoi li_question = listQuestionreturn, //danh sach cac cau hoi li_answer = liAnswer, //danh sach tat ca cac cau tra loi liExamresult, //danh sach tat ca cac dap an da tra loi cu sinh vien ret //ok }, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }
/// <summary> /// logic: truyền vào coursecode và examtimecode /// từ coursecode và examtimecode -> tìm được examhallstudent tương ứng -> lấy ra được examformcode chính là đề thi mà sinh viên đó làm /// lấy ra danh sách các nhóm câu hỏi của đề thi đấy (dữ liệu trong bảng examformdetail) /// lấy danh sách các câu hỏi /// </summary> /// <param name="coursecode">mã lớp môn học</param> /// <param name="examtimecode"></param> /// <returns></returns> public JsonResult ShowExamResult(string coursecode, string examtimecode) { if (string.IsNullOrEmpty(coursecode)) { coursecode = "1708310001"; } if (string.IsNullOrEmpty(examtimecode)) { examtimecode = "1712250004"; } var ret = 0; string studentcode = ""; List <QUESTION_OBJ> liQuestion = null; List <ANSWER_OBJ> liAnswer = null; List <EXAMRESULT_OBJ> liExamresult = null; EXAMFORM_OBJ objExamform = null; List <EXAMFORMDETAIL_OBJ> liExamformdetail = null; List <QUESTIONGROUP_OBJ> liQuestiongroup = null; int numberQuestion = 0; // số câu hỏi EXAMHALLSTUDENT_OBJ examhallstudentObj = new EXAMHALLSTUDENT_OBJ(); if (_ses.loginType.Equals("STUDENT")) { studentcode = _ses.loginCode; } else { ret = -1; } if (ret >= 0) { List <fieldpara> lipa = new List <fieldpara>(); // get mark MARK_BUS markBus = new MARK_BUS(); lipa.Add(new fieldpara("STUDENTCODE", studentcode, 0)); lipa.Add(new fieldpara("COURSECODE", coursecode, 0)); lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); var mark = markBus.GetByKey(lipa.ToArray()); markBus.CloseConnection(); if (mark != null) { EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); examhallstudentObj = bus.GetByKey(new fieldpara("MARKCODE", mark.CODE, 0), new fieldpara("EXAMTIMECODE", examtimecode)); bus.CloseConnection(); if (examhallstudentObj != null) { // lấy đề thi EXAMFORM_BUS busExamform = new EXAMFORM_BUS(); objExamform = busExamform.GetByID((new EXAMFORM_OBJ.BusinessObjectID(examhallstudentObj.EXAMFORMCODE))); busExamform.CloseConnection(); if (objExamform != null) { // lấy danh sách chi tiết đề thi EXAMFORMDETAIL_BUS busExamformdetail = new EXAMFORMDETAIL_BUS(); liExamformdetail = busExamformdetail.getAllBy2("THEORDER", new fieldpara("EXAMFORMCODE", objExamform.CODE)); busExamformdetail.CloseConnection(); if (liExamformdetail != null) { lipa = new List <fieldpara>(); List <jointable> lijoin = new List <jointable>(); //Lay danh sach cac nhom cau hoi QUESTIONGROUP_BUS busQuestiongroup = new QUESTIONGROUP_BUS(); lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "CODE", "QUESTIONGROUPCODE", new fieldpara("EXAMFORMCODE", objExamform.CODE))); liQuestiongroup = busQuestiongroup.getAllBy2("CODE", lipa, lijoin); busQuestiongroup.CloseConnection(); if (liQuestiongroup != null) { //Lay danh sach cau hoi QUESTION_BUS busQuestion = new QUESTION_BUS(); lijoin.Clear(); lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE", "QUESTIONGROUPCODE", new fieldpara("examformcode", objExamform.CODE))); liQuestion = busQuestion.getAllBy2("CODE", lipa, lijoin); numberQuestion = liQuestion.Count; busQuestion.CloseConnection(); // lấy danh sách các câu trả lời lijoin.Clear(); ANSWER_BUS busAnswer = new ANSWER_BUS(); lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE", "QUESTIONGROUPCODE", new fieldpara("examformcode", objExamform.CODE))); liAnswer = busAnswer.getAllBy2("CODE", lipa, lijoin); busAnswer.CloseConnection(); // lấy danh sách kết quả thi của sinh vên đó EXAMRESULT_BUS busExamresult = new EXAMRESULT_BUS(); liExamresult = busExamresult.getAllBy2(new fieldpara("examhallstudentcode", examhallstudentObj.CODE)); busExamresult.CloseConnection(); if (liAnswer == null || liExamresult == null) { ret = -7; } } else { ret = -6; } } else { ret = -5; } } else { ret = -4; } } else { ret = -3; } } else { ret = -2; } } else { ret = -1; } var jsonResult = Json(new { numberQuestion, //so luong cau hoi ObjexamHallstudent = examhallstudentObj, //examhallstudent code ObjexamForm = objExamform, //examform liExamformDetail = liExamformdetail, //Danh sách examdetail liQuestiongroup, li_question = liQuestion, li_answer = liAnswer, li_examresult = liExamresult,//danh sách đáp án ret }, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }