/// <summary> /// lấy danh sách sinh viên theo phòng thi, dùng bên quản lý /// </summary> /// <param name="page"></param> /// <param name="pageSize"></param> /// <param name="examHallCode">mã phòng thi</param> /// <returns></returns> public JsonResult GetListManage(string examhallcode) { ////khai báo lấy dữ liệu STUDENT_BUS bus = new STUDENT_BUS(); DataSet ds = new DataSet(); var ret = 0; ret = bus.getByExamhallManage(ref ds, examhallcode); bus.CloseConnection(); List<dynamic> liStudent = new List<dynamic>(); if (ret >= 0) { foreach (DataRow r in ds.Tables["examhallstudent"].Rows) { dynamic objtemp = new ExpandoObject(); objtemp.EXAMHALLSTUDENTCODE = com.string4Row(r, "code", ""); objtemp.CODEVIEW = com.string4Row(r, "codeview", ""); // MÃ SINH VIÊN objtemp.NAME = com.string4Row(r, "name", ""); // MÃ SINH VIÊN objtemp.BIRTHDAY = com.string4Row(r, "birthday", ""); objtemp.EXAMFORMNAME = com.string4Row(r, "examformname", ""); objtemp.REALBEGINTIME = com.string4Row(r, "realbegintime", ""); // thời gian thực tế sinh viên bắt đầu thi objtemp.REALENDTIME = com.string4Row(r, "realendtime", ""); objtemp.EXAMFORMCODE = com.string4Row(r, "examformcode", ""); objtemp.LOCK = com.int4Row(r, "lock", 0); objtemp.FINALENDTIME = com.string4Row(r, "finalendtime", ""); liStudent.Add(objtemp); } } return Json(new { ret = ret, lst = liStudent }, JsonRequestBehavior.AllowGet); }
///// <summary> ///// chấm điểm cho 1 sinh viên ///// </summary> ///// <param name="examhallstudent"></param> ///// <returns></returns> public JsonResult GetMark(string examhallstudentcode) { // kiểm tra xem còn bản ghi examhallstudentcode này trên server ko EXAMHALLSTUDENT_BUS examhallstudentBus = new EXAMHALLSTUDENT_BUS(); var examhallstudent = examhallstudentBus.GetByID(new EXAMHALLSTUDENT_OBJ.BusinessObjectID(examhallstudentcode)); var ret = (examhallstudent == null) ? -1 : 0; if (ret >= 0) { // lấy kết quả thi của sinh viên này EXAMRESULT_BUS examresultBus = new EXAMRESULT_BUS(); var examresult = examresultBus.getAllBy2("EXAMFORMDETAILCODE", new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0)); if (examresult != null && examresult.Count > 0) { // lấy danh sách câu hỏi và câu trả lời của sinh viên, trừ các dạng câu hỏi: điền vào đoạn trống tự điền từ, viết lại câu, viết đoạn văn, nghe nói, viết DataSet ds = new DataSet(); ret = examresultBus.getExamresult(ref ds, "examresult", examresult[0].EXAMHALLSTUDENTCODE); List <EXAMRESULT_OBJ> liResult1 = new List <EXAMRESULT_OBJ>(); // danh sách câu hỏi kiểu trắc nghiệm List <EXAMRESULT_OBJ> liResultFg = new List <EXAMRESULT_OBJ>(); // lấy danh sách câu hỏi dạng điền vào đoạn trống tự gõ từ List <EXAMRESULT_OBJ> liResultRw = new List <EXAMRESULT_OBJ>(); // lấy danh sách câu hỏi dạng viết lại câu if (ret >= 0) { foreach (DataRow r in ds.Tables["examresult"].Rows) { var objtemp = new EXAMRESULT_OBJ { EXAMFORMDETAILCODE = com.string4Row(r, "examformdetailcode", ""), QUESTIONCODE = com.string4Row(r, "questioncode", ""), ANSWERCODE = com.string4Row(r, "answercode", ""), ANSWERTEXT = com.string4Row(r, "answertext", ""), QUESTIONGROUPCODE = com.string4Row(r, "questiongroupcode", "") }; string questiontype = com.string4Row(r, "questiontype", ""); // nếu thuộc 6 dạng này thì add vào result1 if (questiontype.Equals("MC") || questiontype.Equals("FI") || questiontype.Equals("CO") || questiontype.Equals("LA") || questiontype.Equals("PA") || questiontype.Equals("MS")) { liResult1.Add(objtemp); } // nếu là dạng điền vào đoạn trống thì add vào resulf FG if (questiontype.Equals("FG")) { liResultFg.Add(objtemp); } // nếu là dạng điền vào đoạn trống thì add vào resulfRW if (questiontype.Equals("RW")) { liResultRw.Add(objtemp); } } } // lấy danh sách câu hỏi và câu trả lời trong đề thi của sinh viên var examformcode = examresult[0].EXAMFORMCODE; ds = new DataSet(); ret = examresultBus.getExamform(ref ds, "examform", examformcode); List <dynamic> liQuestion = new List <dynamic>(); if (ret >= 0) { foreach (DataRow r in ds.Tables["examform"].Rows) { dynamic question = new ExpandoObject(); question.QUESTIONCODE = com.string4Row(r, "code", ""); // mã câu hỏi question.TRUEANSWER = com.string4Row(r, "trueanswer", ""); // đáp án đúng // question.MARK = com.string4Row(r, "mark", ""); // số điểm cho câu hỏi này question.MARK = float.Parse(com.string4Row(r, "mark", ""), CultureInfo.InvariantCulture.NumberFormat); question.CONTENT = com.string4Row(r, "content", ""); // nội dung câu hỏi, sử dụng trong trường hợp điền vào đoạn trống tự gõ từ, viết lại câu liQuestion.Add(question); } } // so sánh dạng trắc nghiệm, nếu đúng thì update lại điểm List <EXAMRESULT_OBJ> dataUpdate = new List <EXAMRESULT_OBJ>(); List <fieldpara> lipa = new List <fieldpara>(); foreach (var item in liResult1) { foreach (var item2 in liQuestion) { if (item.QUESTIONCODE == item2.QUESTIONCODE && item.ANSWERCODE == item2.TRUEANSWER) { item.EXAMHALLSTUDENTCODE = examhallstudentcode; item.EXAMFORMCODE = examformcode; lipa.Clear(); lipa.Add(new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0)); lipa.Add(new fieldpara("EXAMFORMDETAILCODE", item.EXAMFORMDETAILCODE, 0)); lipa.Add(new fieldpara("QUESTIONCODE", item.QUESTIONCODE, 0)); lipa.Add(new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE, 0)); var obj = examresultBus.GetByKey(lipa.ToArray()); if (obj != null) { obj.MARK = 1; if (item2.MARK > 0) { obj.MARK = item2.MARK; } dataUpdate.Add(obj); } else { ret = -1; } } } } // so sánh dạng điền vào chỗ trống tự gõ từ foreach (var item in liResultFg) { foreach (var item2 in liQuestion) { if (item.QUESTIONCODE == item2.QUESTIONCODE) { // so sánh câu trả lời của sinh viên có khớp với đáp án hay không string answer = item.ANSWERTEXT; // Câu trả lời của sinh viên string trueanswer = item2.CONTENT; // Nội dung câu trả lời answer = answer.Trim(); // loại bỏ các kí tự html trueanswer = StripHtml(trueanswer).Trim(); if (String.Compare(answer, trueanswer, StringComparison.OrdinalIgnoreCase) == 0) { item.EXAMHALLSTUDENTCODE = examhallstudentcode; item.EXAMFORMCODE = examformcode; lipa.Clear(); lipa.Add(new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0)); lipa.Add(new fieldpara("EXAMFORMDETAILCODE", item.EXAMFORMDETAILCODE, 0)); lipa.Add(new fieldpara("QUESTIONCODE", item.QUESTIONCODE, 0)); lipa.Add(new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE, 0)); var obj = examresultBus.GetByKey(lipa.ToArray()); if (obj != null) { obj.MARK = 1; if (item2.MARK > 0) { obj.MARK = item2.MARK; } dataUpdate.Add(obj); } else { ret = -1; } } } } } // so sánh dạng viết lại câu foreach (var item in liResultRw) { foreach (var item2 in liQuestion) { if (item.QUESTIONCODE == item2.QUESTIONCODE) { // so sánh câu trả lời của sinh viên có khớp với đáp án hay không string answer = item.ANSWERTEXT; // Câu trả lời của sinh viên string trueanswer = item2.CONTENT; // Nội dung câu trả lời answer = answer.Trim(); // loại bỏ các kí tự html trueanswer = StripHtml(trueanswer).Trim(); // regex về dạng chuẩn answer = RegexAnswer(answer); if (String.Compare(answer, trueanswer, StringComparison.OrdinalIgnoreCase) == 0) { item.EXAMHALLSTUDENTCODE = examhallstudentcode; item.EXAMFORMCODE = examformcode; lipa.Clear(); lipa.Add(new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0)); lipa.Add(new fieldpara("EXAMFORMDETAILCODE", item.EXAMFORMDETAILCODE, 0)); lipa.Add(new fieldpara("QUESTIONCODE", item.QUESTIONCODE, 0)); lipa.Add(new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE, 0)); var obj = examresultBus.GetByKey(lipa.ToArray()); if (obj != null) { obj.MARK = 1; if (item2.MARK > 0) { obj.MARK = item2.MARK; } dataUpdate.Add(obj); } else { ret = -1; } } } } } if (dataUpdate.Count > 0) { //mặc định khi vào danh sách này là xóa thành công nên ret= 1; //duyệt toàn bộ danh sách bản ghi để xóa examresultBus.BeginTransaction(); ret = examresultBus.UpdateMultiItems(dataUpdate); if (ret < 0) { //Trong trường hợp nhiều thao tác, có một thao tác không thành công, //hàm này được gọi để quay lại trạng thái trước khi thực hiện (bắt đầu từ khi gọi BeginTransaction() examresultBus.RollbackTransaction(); } else { //Sau khi thao tác dữ liệu thành công, hàm này được gọi để thực hiện ghi vào cơ sở dữ liệu examresultBus.CommitTransaction(); } } return(Json(new { ret }, JsonRequestBehavior.AllowGet)); } } examhallstudentBus.CloseConnection(); return(Json(new { }, JsonRequestBehavior.AllowGet)); }
public ActionResult Profile() { if (ses.isLogin() != 0) { ses.gotoPage("/admin/login", "Chưa đăng nhập"); return(null); } STUDENT_BUS bus = new STUDENT_BUS(); STUDENT_OBJ obj = bus.GetByID(new STUDENT_OBJ.BusinessObjectID(ses.loginCode)); bus.CloseConnection(); if (obj == null) { ses.gotoPage("/admin/login", "Chưa đăng nhập"); return(null); } DataSet ds = new DataSet(); int ret = bus.GetAllCourse(ref ds, "COURSESTUDIED", obj); bus.CloseConnection(); List <dynamic> liMark = new List <dynamic>(); if (ret >= 0) { foreach (DataRow r in ds.Tables["COURSESTUDIED"].Rows) { dynamic objtemp = new ExpandoObject(); objtemp.MARKCODE = com.string4Row(r, "code", ""); objtemp.SUBJECTCODE = com.string4Row(r, "subjectcode", ""); objtemp.NAME = com.string4Row(r, "name", ""); objtemp.COUNT = com.int4Row(r, "sobai", 0); objtemp.COUNTLEARNT = com.int4Row(r, "sobaidahoc", 0); objtemp.COUNTLEARNTYET = com.int4Row(r, "sobaichuahoc", 0); objtemp.COURSECODE = com.string4Row(r, "coursecode", ""); liMark.Add(objtemp); } } ret = bus.GetAllMark(ref ds, "MARKED", obj); bus.CloseConnection(); List <dynamic> liMark2 = new List <dynamic>(); if (ret >= 0) { foreach (DataRow r in ds.Tables["MARKED"].Rows) { dynamic objtemp = new ExpandoObject(); objtemp.EXAMTIMECODE = com.string4Row(r, "examtimecode", ""); objtemp.NAME = com.string4Row(r, "name", ""); objtemp.MARKMAX = com.int4Row(r, "sodiem", 0); objtemp.MARK10 = com.int4Row(r, "mark10", 0); objtemp.MARKCODE = com.string4Row(r, "code", ""); liMark2.Add(objtemp); } } //MARK_BUS busMark = new MARK_BUS(); //List<MARK_OBJ> liMark = busMark.getAllBy2("subjectcode", new fieldpara("STUDENTCODE", ses.loginCode)); //busMark.CloseConnection(); //if (liMark == null) //{ // ses.gotoPage("/admin/login", "Chưa đăng nhập"); // return null; //} dynamic defaultobject = new ExpandoObject(); defaultobject.thetype = ses.loginType; defaultobject.name = ses.loginFullName; defaultobject.code = ses.loginCode; defaultobject.birthday = com.date2String(obj.BIRTHDAY); defaultobject.address = obj.ADDRESS; defaultobject.email = obj.EMAIL; defaultobject.tel = obj.TEL; defaultobject.limark = liMark; defaultobject.codeview = obj.CODEVIEW; defaultobject.khoa = obj.LOCK; defaultobject.note = obj.NOTE; defaultobject.sex = obj.SEX; defaultobject.classcode = obj.CLASSCODE; defaultobject.limark2 = liMark2; //defaultobject.defaulttab = "subject"; ViewBag.defaultvalue = JsonConvert.SerializeObject(defaultobject); string[] jsx = { "/jsx/Core/Student/StudentPriorityAdd.jsx" , "/jsx/Core/Student/Studentpopup.jsx" , "/jsx/Admin/Changepass/Changepass.jsx" , "/jsx/Core/Student/Studentprofile.jsx" }; //string[] jsx = { // "/Jsx/_Shared/ButtonList.jsx" // ,"/Jsx/_Shared/PopupSearch.jsx" // ,"/Scripts/Ag-grid/ag-grid.js" // ,"/Jsx/_Shared/AgGrid.jsx" // ,"/Jsx/_Shared/TabHeader.jsx"//Phụ trách hiển thị các tab // ,"/jsx/Profile/List1.jsx" // ,"/jsx/subject/subject/Subjectpopup.jsx" // ,"/jsx/subject/course/CourseList.jsx" // ,"/jsx/subject/course/Coursepopup.jsx" // ,"/jsx/Profile/ProfileApp.jsx"//Tạo khai báo tab //}; ViewBag.jsx = jsx; return(View("Adminindex")); }