/// <summary> /// /// lấy danh sách đợt thi của sinh viên /// </summary> /// <param name="markcode"></param> /// <param name="coursecode">mã lớp học</param> /// <returns></returns> public JsonResult GetByMarkCourse(string markcode, string coursecode) { EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); var data = bus.getAllBy2(new fieldpara("MARKCODE", markcode, 0), new fieldpara("COURSECODE", coursecode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); string examtimecode = ""; return(Json(new { data, examtimecode }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// lấy danh sách sinh viên của lớp môn học, chưa được thêm vào đợt thi /// </summary> /// <param name="examtimeCode">mã đợt thi</param> /// <param name="courseCode">mã lớp môn học</param> /// <returns></returns> public JsonResult GetAllStudent(string examtimeCode, string courseCode) { var ret = 0; MARK_BUS markBus = new MARK_BUS(); //lấy toàn bộ danh sách sinh viên trong một lớp môn học var liMark = markBus.getAllBy2(new fieldpara("COURSECODE", courseCode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); markBus.CloseConnection(); EXAMHALLSTUDENT_BUS examBus = new EXAMHALLSTUDENT_BUS(); var liExamHallStudent = examBus.getAllBy2(new fieldpara("EXAMTIMECODE", examtimeCode, 0), new fieldpara("COURSECODE", courseCode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); if (liMark == null && liExamHallStudent == null) ret = -1; else { foreach (var examHallStudent in liExamHallStudent) { for (int i = 0; i < liMark.Count; i++) { var mark = liMark[i]; if (mark.CODE == examHallStudent.MARKCODE && mark.COURSECODE == examHallStudent.COURSECODE) { liMark.Remove(mark); break; } } } } List<STUDENT_OBJ> liStudent = new List<STUDENT_OBJ>(); if (liMark != null && liMark.Count > 0) { foreach (var mark in liMark) { liStudent.Add(mark._STUDENTCODE); } } return Json(new { data = liStudent, ret = ret }, JsonRequestBehavior.AllowGet); }
/// <summary> /// chia đề thi cho sinh viên /// </summary> /// <param name="examtimeCode"></param> public int DevideExam(string examtimeCode) { int ret = 0; if (!string.IsNullOrEmpty(examtimeCode)) { //list examform by examtime EXAMFORM_BUS examformBus = new EXAMFORM_BUS(); var liExamform = examformBus.getAllBy2("CODE", new fieldpara("EXAMTIMECODE", examtimeCode, 0)); int examformAmount = liExamform.Count; // số đề thi // list hall EXAMHALL_BUS examhallBus = new EXAMHALL_BUS(); var liExamHall = examhallBus.getAllBy2("CODE", new fieldpara("EXAMTIMECODE", examtimeCode, 0)); foreach (var examhall in liExamHall) { // danh sách sinh viên của một phòng thi EXAMHALLSTUDENT_BUS examhallstudentBus = new EXAMHALLSTUDENT_BUS(); var liExamStd = examhallstudentBus.getAllBy2("CODE", new fieldpara("EXAMHALLCODE", examhall.CODE, 0)); for (int j = 0; j < liExamform.Count; j++) { for (int i = 0; i < liExamStd.Count; i++) { if (i % examformAmount == j) { liExamStd[i].EXAMFORMCODE = liExamform[j].CODE; ret = examhallstudentBus.Update(liExamStd[i]); if (ret < 0) { return(ret); } } } } } } // return ret; return(ret); }
/// <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> /// khi update bản ghi: hàm này được gọi trong hàm update /// </summary> /// <param name="obj"></param> /// <returns></returns> public ArrayList UpdateExamHall(EXAMHALL_OBJ obj) { ArrayList arrList = new ArrayList(); EXAMHALL_BUS bus = new EXAMHALL_BUS(); int ret = 0; int add = 0; //kiểm tra tồn tại cho trường hợp sửa var objTemp = !string.IsNullOrEmpty(obj.CODE) ? bus.GetByID(new EXAMHALL_OBJ.BusinessObjectID(obj.CODE)) : new EXAMHALL_OBJ(); if (ret < 0) { //đóng kết nối trước khi trả về bus.CloseConnection(); //ban ghi sửa đã bị xóa return(arrList); } //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.NOTE = obj.NOTE; objTemp.LOCK = obj.LOCK; //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.CODEVIEW = objTemp.CODE; objTemp.LOCKDATE = DateTime.Now; } objTemp.EXAMTIMECODE = obj.EXAMTIMECODE; objTemp.BAGGROUP = obj.BAGGROUP; objTemp.HALLNUMBER = obj.HALLNUMBER; objTemp.MAXSTUDENT = obj.MAXSTUDENT; objTemp.STUDENTAMOUNT = obj.STUDENTAMOUNT; objTemp.EXAMSTUDENTAMOUNT = obj.EXAMSTUDENTAMOUNT; objTemp.PAPERAMOUNT = obj.PAPERAMOUNT; objTemp.BEGINTIME = obj.BEGINTIME; objTemp.ENDTIME = obj.ENDTIME; objTemp.UNIVERSITYCODE = _ses.gUNIVERSITYCODE; 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); if (ret >= 0) { // update lại realbegintime và realendtime cho các sinh viên trong phòng này EXAMHALLSTUDENT_BUS stdBus = new EXAMHALLSTUDENT_BUS(); var examHallStd = stdBus.getAllBy2("CODE", new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0), new fieldpara("EXAMHALLCODE", objTemp.CODE, 0)); if (examHallStd != null) { foreach (var item in examHallStd) { item.REALBEGINTIME = objTemp.BEGINTIME; item.REALENDTIME = objTemp.ENDTIME; item.FINALENDTIME = objTemp.ENDTIME; ret = new ExamHallStudentController().Update(item); } } stdBus.CloseConnection(); } } int pagecount = 0; int currentpage = 0; if (ret >= 0) { List <fieldpara> lipa = new List <fieldpara> { new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0) }; objTemp._ID.CODE = objTemp.CODE; ret = bus.checkPage(objTemp._ID, "CODE", AppConfig.item4page(), out pagecount, out currentpage, lipa); } bus.CloseConnection(); arrList.Add(objTemp.CODE); arrList.Add(ret); arrList.Add(pagecount); arrList.Add(currentpage); return(arrList); }
/// <summary> /// tạo phòng thi cho sinh viên /// </summary> /// <param name="examTimeCode">mã đợt thi</param> /// <returns></returns> public int CreateExamHallStudent(string examTimeCode) { var ret = 0; // delete all examhall by examtimecode ExamHallController examhallstudens = new ExamHallController(); ret = examhallstudens.DeleteAll(examTimeCode); if (ret >= 0) { // get examtime EXAMTIME_BUS examTimeBus = new EXAMTIME_BUS(); EXAMTIME_OBJ examtime = examTimeBus.GetByID(new EXAMTIME_OBJ.BusinessObjectID(examTimeCode)); int studentAmountHall = examtime.STUDENTAMOUNTHALL; //get all student by examtime EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); List<fieldpara> lipa = new List<fieldpara> { new fieldpara("EXAMTIMECODE", examTimeCode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0) }; //order by code var liStudent = bus.getAllBy2("CODE", lipa.ToArray()); // list ExamHallStudent EXAMHALLSTUDENT_OBJ examhallstudent = new EXAMHALLSTUDENT_OBJ(); string examhallcode = ""; int counthall = 0; // số phòng // gán mã phòng cho sinh viên for (int i = 0; i < liStudent.Count; i++) { // ví dụ: từ sinh viên 1 -> count - 1 if (i % studentAmountHall != 0) { examhallstudent.CODE = liStudent[i].CODE; examhallstudent.EXAMHALLCODE = examhallcode; ret = Update(examhallstudent); if (ret < 0) { bus.CloseConnection(); examTimeBus.CloseConnection(); return ret; } } else { counthall++; // các sinh viên đầu phòng // create examhall EXAMHALL_OBJ examhall = new EXAMHALL_OBJ { NAME = examtime.NAME + " - "+ counthall, EXAMTIMECODE = examTimeCode, UNIVERSITYCODE = _ses.gUNIVERSITYCODE }; ArrayList result = new ExamHallController().UpdateExamHall(examhall); examhallcode = (string)result[0]; // examhallcode // update examhallcode examhallstudent.CODE = liStudent[i].CODE; examhallstudent.EXAMHALLCODE = examhallcode; ret = Update(examhallstudent); if (ret < 0) { bus.CloseConnection(); examTimeBus.CloseConnection(); return ret; } } } bus.CloseConnection(); examTimeBus.CloseConnection(); } return ret; }