/// <summary> /// Tạo đề thi với đợt thi, với cấu trúc đề thi, số lượng đề thi theo quy định; Trả về danh sách đề thi /// Mr. Uyen viết /// </summary> /// <param name="examTimeCode"></param> /// <param name="testStructCode"></param> public List <EXAMFORM_OBJ> CreateExamForm(EXAMTIME_OBJ objExamtime, int testcount, out int ret) { List <EXAMFORM_OBJ> liExamform = new List <EXAMFORM_OBJ>(); ret = 0; // get examtime EXAMFORM_BUS bus = new EXAMFORM_BUS(); EXAMFORM_OBJ obj = new EXAMFORM_OBJ(); string currentCode = bus.genNextCode(obj);//Mã đầu tiên for (int i = 0; i < testcount; i++) { // create examform obj = new EXAMFORM_OBJ { EXAMTIMECODE = objExamtime.CODE, SUBJECTCODE = objExamtime.SUBJECTCODE, TESTSTRUCTCODE = objExamtime.TESTSTRUCTCODE, EDITTIME = DateTime.Now, EDITUSER = _ses.loginCode, LOCK = 0, NAME = objExamtime.NAME + "(" + (i + 1).ToString() + ")" }; obj.CODE = currentCode; currentCode = bus.genNextCode(obj, currentCode); obj.CODEVIEW = (i + 1).ToString(); obj.LOCKDATE = DateTime.Now; liExamform.Add(obj); } // ret = bus.InsertMultiItems(liExamform); bus.CloseConnection(); return(liExamform); }
/// <summary> /// tạo đề thi cho một đợt thi với cấu trúc đề thi cho trươcs. /// create by cucpt /// </summary> /// <param name="examTimeCode"></param> /// <param name="testStructCode"></param> public ArrayList CreateExamForm(string examTimeCode, string testStructCode) { ArrayList result = new ArrayList(); string code = ""; // xóa toàn bộ đề thi cũ var ret = DeleteAll(examTimeCode); if (ret >= 0) { // get examtime EXAMTIME_BUS examTimeBus = new EXAMTIME_BUS(); EXAMTIME_OBJ examtime = examTimeBus.GetByID(new EXAMTIME_OBJ.BusinessObjectID(examTimeCode)); int testcount = examtime.TESTCOUNT; // số đề thi EXAMFORM_BUS bus = new EXAMFORM_BUS(); for (int i = 0; i < testcount; i++) { // tạo 1 đề thi mới. với mỗi đề thi, sinh ra cấu trúc đề thi tương ứng EXAMFORM_OBJ obj = new EXAMFORM_OBJ { EXAMTIMECODE = examTimeCode, SUBJECTCODE = examtime.SUBJECTCODE, TESTSTRUCTCODE = testStructCode, EDITTIME = DateTime.Now, EDITUSER = _ses.loginCode, LOCK = 0, NAME = "Đề " + (i + 1) + " " + examtime.NAME }; obj.CODE = bus.genNextCode(obj); obj.CODEVIEW = obj.CODE; code = obj.CODE; obj.LOCKDATE = DateTime.Now; ret = bus.insert(obj); if (ret >= 0) // nếu tạo đề thành công thì đi tạo chi tiết đề { ret = CreateExamFormDetail(obj.CODE, testStructCode); } if (ret < 0) { break; // nếu tạo đề không thành công thì thoát luôn, báo lỗi cho người dùng } } } // sau khi tạo đề thành công thì đi chia đề cho sinh viên if (ret >= 0) { // chia đề thi ret = DevideExam(examTimeCode); } result.Add(ret); result.Add(code); return(result); }
/// <summary> /// sinh chi tiết đề thi /// </summary> /// <param name="examformCode">mã đề thi</param> /// <param name="testStructCode"></param> /// <returns></returns> public int CreateExamFormDetail(ref List <EXAMFORMDETAIL_OBJ> liExamformdetail, EXAMFORM_OBJ objExamform, List <TESTSTRUCTDETAIL_OBJ> liTestStructDetail, ref string currentCode) { int ret = 0; Random rnd = new Random(); EXAMFORMDETAIL_BUS bus = new EXAMFORMDETAIL_BUS(); EXAMFORMDETAIL_OBJ obj = new EXAMFORMDETAIL_OBJ(); // List<EXAMFORMDETAIL_OBJ> liExamformdetail = new List<EXAMFORMDETAIL_OBJ>(); //Chuẩn bị các mã //string currentCode = bus.genNextCode(obj); foreach (var testStructDetail in liTestStructDetail) { int amountQues = testStructDetail.AMOUNT; // số câu hỏi // double toTalMark = testStructDetail.TOTALMARK; // tổng số điểm if (amountQues > 0) // nếu có câu hỏi trong cấu trúc đề thi { string subjectContentCode = testStructDetail.SUBJECTCONTENTCODE; string questionTypeCode = testStructDetail.QUESTIONTYPECODE; int countQues = 0; //tổng số câu hỏi đã lấy được // double countMark = 0; // tổng số điểm lấy được // get ListQuestionGroup by subjectContentCode and questiontypecode List <QUESTIONGROUP_OBJ> liQuesGroup = new QuestionController().GetQGroupBySbjContent(subjectContentCode, questionTypeCode); List <string> selectedQuesGroupCode = new List <string>(); // danh sách nhóm câu hỏi đã được chọn //Random ra câu hỏi, //random được câu nào thì remove câu đó khỏi danh sách ban đầu (ko bị random lại) while (liQuesGroup.Count > 0 && countQues < amountQues) { int r = rnd.Next(0, liQuesGroup.Count); QUESTIONGROUP_OBJ questionGroup = liQuesGroup[r]; selectedQuesGroupCode.Add(questionGroup.CODE); liQuesGroup.RemoveAt(r); countQues++; } // insert examformdetail //ret = InsertExamFormDetail(objExamform.CODE, selectedQuesGroupCode, testStructDetail.CODE); //Tính toán các bước để xác định các được sinh ra for (int i = 0; i < selectedQuesGroupCode.Count; i++) { obj = new EXAMFORMDETAIL_OBJ(); obj.EXAMFORMCODE = objExamform.CODE; obj.QUESTIONGROUPCODE = selectedQuesGroupCode[i]; obj.TESTSTRUCTDETAILCODE = testStructDetail.CODE; obj.THEORDER = i + 1; obj.CODE = currentCode; //Tính toán mã mới currentCode = bus.genNextCode(obj, currentCode); //Thêm vào danh sách chuẩn bị vào liExamformdetail.Add(obj); } } } //Insert here //ret = bus.InsertMultiItems(liExamformdetail); //bus.CloseConnection(); return(ret); }
public JsonResult Update(EXAMFORM_OBJ obj) { EXAMFORM_BUS bus = new EXAMFORM_BUS(); int ret; int add = 0; EXAMFORM_OBJ objTemp; //kiểm tra tồn tại cho trường hợp sửa if (!string.IsNullOrEmpty(obj.CODE))//edit { objTemp = bus.GetByID(new EXAMFORM_OBJ.BusinessObjectID(obj.CODE)); if (objTemp == null) { ret = -4; bus.CloseConnection(); //ban ghi sửa đã bị xóa return(Json(new { sussess = ret }, JsonRequestBehavior.AllowGet)); } } else { objTemp = new EXAMFORM_OBJ(); } //hết kiểm tra tồn tại bản ghi objTemp.EDITTIME = DateTime.Now; //Thời điểm sủa bản ghi objTemp.EDITUSER = _ses.loginCode; //Người sửa bản ghi objTemp.CODEVIEW = obj.CODEVIEW; objTemp.NAME = obj.NAME; objTemp.SUBJECTCODE = obj.SUBJECTCODE; objTemp.EXAMTIMECODE = obj.EXAMTIMECODE; objTemp.NOTE = obj.NOTE; objTemp.TESTSTRUCTCODE = obj.TESTSTRUCTCODE; //Kiểm tra tình trạng sửa hay là thêm mới if (string.IsNullOrEmpty(obj.CODE)) { //Thêm mới add = 1; //Sinh mã objTemp.CODE = bus.genNextCode(obj); objTemp.LOCKDATE = DateTime.Now; } if (add == 1) { ret = bus.insert(objTemp); } else { //gán _ID để xác định bản ghi sẽ được cập nhật objTemp._ID.CODE = obj.CODE; ret = bus.update(objTemp); } int pagecount = 0; int currentpage = 0; if (ret >= 0) { objTemp._ID.CODE = objTemp.CODE; ret = bus.checkPage(objTemp._ID, "CODE", AppConfig.item4page(), out pagecount, out currentpage); } bus.CloseConnection(); //some thing like that return(Json(new { ret, pagecount, currentpage }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// lấy chi tiết 1 đề thi /// </summary> /// <param name="examformcode">mã đề thi</param> /// <returns></returns> public JsonResult Preview(string examformcode) { int ret = 0; int numberQuestion = 0; EXAMFORM_BUS busExamform = new EXAMFORM_BUS(); EXAMFORM_OBJ objExamform = busExamform.GetByID((new EXAMFORM_OBJ.BusinessObjectID(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(); } var jsonResult = Json(new { numberQuestion, //so luong cau hoi 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 ret //ok }, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }
/// <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); }
/// <summary> /// lấy kết quả bài thi dựa trên mark code /// </summary> /// <param name="markcode"></param> /// <returns></returns> /// show questiongroup /// show question /// show answer /// put data//hide other answer public JsonResult ShowData(string markcode) { var ret = -1; int numberQuestion = 0; //dựa vào mã sinh viên thuộc lớp môn học nào sẽ xác định mã sinh bài thi của phòng nào đó cho môn học đó EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); EXAMHALLSTUDENT_OBJ obj = bus.GetByKey(new fieldpara("MARKCODE", markcode, 0)); bus.CloseConnection(); //bài kiểm tra EXAMFORM_BUS busExamform = new EXAMFORM_BUS(); EXAMFORM_OBJ objExamform = null; if (ret >= 0) { 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> liQuestion = 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))); } liQuestion = busQuestion.getAllBy2("CODE", lipa, lijoin); if (liQuestion == null) { ret = -5; } else { 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(); } var jsonResult = Json(new { numberQuestion, //so luong cau hoi ObjexamHallstudent = obj, //examhallstudent code ObjexamForm = objExamform, //examform liExamformDetail = liExamformdetail, //Danh sách examdetail liQuestiongroup, li_question = liQuestion, li_answer = liAnswer, ret//ok }, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }
public JsonResult UpdateExamResult(List <QuestionAnswer> listobj, EXAMFORM_OBJ examform, List <EXAMFORMDETAIL_OBJ> listexamformdetail, string examhallstudentcode) { //bài thi của sinh viên sẽ đưa lên gồm có : mã câu hỏi,mã câu trả lời, nội dung câu trả lời // examformcode: mã đề thi , examformdetailcode: mã phần thi // answerfile: link file muốn lưu trên server cho bài thi nói ////list answer, QuestionAnswer {MaCauHoi,MaXTL} var ret = 0; int add = 0; QUESTIONTYPE_BUS busQuestiontype = new QUESTIONTYPE_BUS(); List <QUESTIONTYPE_OBJ> liQuestiontype = busQuestiontype.getAllBy2(); busQuestiontype.CloseConnection(); // list question answer // List<QuestionAnswer> listStudentAnswer = JsonConvert.DeserializeObject<List<QuestionAnswer>>(listobj); List <QuestionAnswer> listStudentAnswer = listobj; if (listStudentAnswer.Count <= 0) { ret = -1; } //list EXAMFORMDETAIL_OBJ // List<EXAMFORMDETAIL_OBJ> listEXamDetail = JsonConvert.DeserializeObject<List<EXAMFORMDETAIL_OBJ>>(listexamformdetail); List <EXAMFORMDETAIL_OBJ> listEXamDetail = listexamformdetail; if (listEXamDetail.Count <= 0) { ret = -2; } // list examform // string exCode = examformcode; // EXAMFORM_OBJ objExForm = JsonConvert.DeserializeObject<EXAMFORM_OBJ>(exCode); EXAMFORM_OBJ objExForm = examform; //examhallstudentcode string exHallcode = examhallstudentcode; //object examresult EXAMRESULT_BUS bus = new EXAMRESULT_BUS(); QUESTION_BUS busQuestion = new QUESTION_BUS(); // QUESTIONGROUP_BUS busQGroup = new QUESTIONGROUP_BUS(); // duyet trong list examformdetail foreach (var item in listEXamDetail) { //lay danh sach question theo tung questiongroup trong examformdetail List <QUESTION_OBJ> liQuestion = busQuestion.getAllBy2("CODE", new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE)); //duyet trong list question foreach (var question in liQuestion) { //duyet trong danh sach cau tra loi cua sinh vien de dua ra la cau hoi nay la cap nhat hay them moi foreach (var answer in listStudentAnswer) { //kiem tra su ton tai cua cau hoi if (answer.MaCauHoi == question.CODE) { //question group to determinecasse writing var objTemp = bus.GetByID(new EXAMRESULT_OBJ.BusinessObjectID(exHallcode, item.CODE, question.CODE)); //chua co thi tuc la them moi if (objTemp == null) { add = 1; objTemp = new EXAMRESULT_OBJ(); } objTemp.EXAMHALLSTUDENTCODE = exHallcode; objTemp.EXAMFORMDETAILCODE = item.CODE; objTemp.EXAMFORMCODE = objExForm.CODE; objTemp.QUESTIONCODE = question.CODE; objTemp.QUESTIONGROUPCODE = item.QUESTIONGROUPCODE; switch (getCodeview(liQuestiontype, item.TESTSTRUCTDETAILCODE)) // thực chất là item._QUESTIONGROUPCODE.QUESTIONTYPECODE nhưng do ko gửi được _QUESTIONGROUPCODE lên, do đó gán tạm TESTSTRUCTDETAILCODE = (item._QUESTIONGROUPCODE.QUESTIONTYPECODE) { //multichoice //1 case "MC": //"1707130001": objTemp.ANSWERCODE = answer.MaCauTL; objTemp.ANSWERTEXT = ""; break; //single choice case //2 case "MS": objTemp.ANSWERCODE = answer.MaCauTL; objTemp.ANSWERTEXT = ""; break; //case CO, true,false,not given //3 case "CO": objTemp.ANSWERCODE = answer.MaCauTL; objTemp.ANSWERTEXT = ""; break; //write //4 case "WR": // "1707130007": objTemp.ANSWERCODE = ""; objTemp.ANSWERTEXT = answer.MaCauTL; break; //rewrite //5 case "RW": // "1707130004": objTemp.ANSWERCODE = ""; objTemp.ANSWERTEXT = answer.MaCauTL; break; //NGHE NOI //6 case "LA": // "1708300007": //LA objTemp.ANSWERFILE = GetName(answer.MaCauTL); break; //trường hợp điền từ vào ô trống //7 case "FG": objTemp.ANSWERCODE = ""; objTemp.ANSWERTEXT = answer.MaCauTL; break; //TRUONG HOP KEO THA VAO O TRONG //8 case "FI": objTemp.ANSWERCODE = answer.MaCauTL; objTemp.ANSWERTEXT = ""; break; // Keo tha vao o trong //9 case "FF": objTemp.ANSWERCODE = answer.MaCauTL; objTemp.ANSWERTEXT = ""; break; //cau hoi ghep doi //10 case "PA": objTemp.ANSWERCODE = answer.MaCauTL; objTemp.ANSWERTEXT = ""; break; //dạng câu hỏi sắp xếp lại câu //11 case "RA": objTemp.ANSWERTEXT = answer.MaCauTL; objTemp.ANSWERCODE = ""; break; default: objTemp.ANSWERCODE = ""; objTemp.ANSWERTEXT = ""; break; } objTemp.LOCK = objExForm.LOCK; objTemp.LOCKDATE = DateTime.Now; objTemp.MARK = 0; if (add > 0) { ret = bus.insert(objTemp); } else { objTemp._ID.QUESTIONCODE = question.CODE; objTemp._ID.EXAMFORMDETAILCODE = item.CODE; objTemp._ID.EXAMHALLSTUDENTCODE = exHallcode; ret = bus.update(objTemp); } } } } } if (ret >= 0) { _ses.tSOURCEPATHSESSION?.Clear(); _ses.tDESTINATIONPATHSESSION?.Clear(); } return(Json(new { ret }, JsonRequestBehavior.AllowGet)); }