public int UpdateStudentAmount(string coursecode) { var ret = 0; COURSE_BUS bus = new COURSE_BUS(); var course = bus.GetByID(new COURSE_OBJ.BusinessObjectID(coursecode)); if (course == null) { ret = -1; bus.CloseConnection(); return(ret); } // tính số sinh viên của lớp học MARK_BUS markBus = new MARK_BUS(); var liMark = markBus.getAllBy2("CODE", new fieldpara("COURSECODE", coursecode, 0), new fieldpara("UNiVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); if (liMark != null) { course.STUDENTAMOUNT = liMark.Count; ret = bus.Update(course); } markBus.CloseConnection(); bus.CloseConnection(); return(ret); }
/// <summary> /// update danh sách sinh viên lớp môn học /// </summary> /// <param name="listStudentCode">danh sách mã sinh viên</param> /// <param name="coursecode">mã lớp môn học</param> /// <param name="subjectcode">Môn học</param> /// <returns></returns> public JsonResult UpdateStudentCourse(List <string> listStudentCode, string coursecode, string subjectcode) { int ret = 0; MARK_BUS busMark = new MARK_BUS(); List <MARK_OBJ> liMark = new List <MARK_OBJ>(); MARK_OBJ midMarkObj = new MARK_OBJ(); //gennextcode to define first code to gennextcode for other n list string markCode = busMark.genNextCode(midMarkObj); if (listStudentCode == null) { ret = -1; } else { foreach (var studentCode in listStudentCode) { MARK_OBJ objMark = new MARK_OBJ { CODE = markCode }; markCode = busMark.GenNextCode(objMark, markCode); //gán giá trị code đầu tiên cho giá trị mặc định sinh được tiến hành gán lại giá trị mặc định mặc gennextcode của đối tượng hiện tại objMark.LOCKDATE = DateTime.Now; objMark.CODEVIEW = objMark.CODEVIEW; objMark.COURSECODE = coursecode; objMark.STUDENTCODE = studentCode; objMark.SUBJECTCODE = subjectcode; objMark.LOCK = 0; objMark.EDITTIME = DateTime.Now; // thời điểm sửa bản ghi objMark.EDITUSER = _ses.loginCode; objMark.UNIVERSITYCODE = _ses.gUNIVERSITYCODE; liMark.Add(objMark); } } //Tạo phiên làm việc, thực hiện trong trường hợp có nhiều thao tác với cơ sở dữ liệu, //yêu cầu khi thực hiện nhiều hơn một lệnh có thay đổi dữ liệu phải gọi phương thức này. busMark.BeginTransaction(); if (ret >= 0) { ret = busMark.InsertMultiItems(liMark); 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() busMark.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 busMark.CommitTransaction(); } } busMark.CloseConnection(); return(Json(new { ret }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// lấy mark theo mã sinh viên và mã khóa học /// </summary> /// <param name="coursecode"></param> /// <returns></returns> public JsonResult GetByStudentCourse(string coursecode) { string studentcode = _ses.loginCode; MARK_BUS bus = new MARK_BUS(); var data = bus.GetByKey(new fieldpara("STUDENTCODE", studentcode, 0), new fieldpara("COURSECODE", coursecode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); bus.CloseConnection(); return(Json(new { data }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Lây ra lấy ra mã sinh viên được chỉ định trong bảng điểm của một lớp môn học /// </summary> /// <param name="studentcode">mã sinh viên</param> /// <param name="coursecode">mã lớp môn học</param> /// <returns></returns> public JsonResult GetMarkCode(string studentcode, string coursecode) { MARK_BUS markbus = new MARK_BUS(); MARK_OBJ obj = markbus.GetByKey(new fieldpara("STUDENTCODE", studentcode, 0), new fieldpara("COURSECODE", coursecode, 0)); markbus.CloseConnection(); var jsonResult = Json(new { obj, //Danh sách ret = 0 //ok }, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }
/// <summary> /// get danh sách tất cả các sinh viên, trừ các sinh viên đã được thêm vào lớp học /// </summary> /// <param name="coursecode">mã lớp học</param> /// <param name="classcode">mã lớp</param> /// <returns></returns> public JsonResult GetAllStudent(string coursecode, string classcode) { // danh sách mã sinh viên đã tham gia vào course List <string> listStudentCode = new List <string>(); MARK_BUS bus = new MARK_BUS(); List <fieldpara> lipa = new List <fieldpara>(); if (!string.IsNullOrEmpty(coursecode)) { lipa.Add(new fieldpara("COURSECODE", coursecode, 0)); } lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); lipa.Add(new fieldpara("EDUCATIONLEVELCODE", "DH", 0)); List <MARK_OBJ> liStudentCourse = bus.getAllBy2("STUDENTCODE", lipa.ToArray()); foreach (var studentcourse in liStudentCourse) { listStudentCode.Add(studentcourse.STUDENTCODE); } // danh sách tất cả các sinh viên STUDENT_BUS busStudent = new STUDENT_BUS(); var liStudent = busStudent.getAllBy2("CODE", new fieldpara("CLASSCODE", classcode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0), new fieldpara("EDUCATIONLEVELCODE", "DH", 0)); var count = 0; if (listStudentCode.Count > 0) { for (int i = 0; i < liStudent.Count; i++) { if (listStudentCode.Contains(liStudent[i].CODE)) { liStudent.RemoveAt(i); i--; } } } var data = JsonConvert.SerializeObject(liStudent); busStudent.CloseConnection(); bus.CloseConnection(); return(Json(new { data,//Danh sách count }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// thêm dữ liệu vào bảng examhallstudent : /// </summary> /// <param name="listStudentCode"></param> /// <param name="examTimeCode"></param> /// <param name="courseCode"></param> /// <param name="parentCode"></param> /// <returns></returns> public JsonResult Insert(List<string> listStudentCode, string examTimeCode, string courseCode) { int ret = 0; if (listStudentCode != null) { EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS(); foreach (var studentCode in listStudentCode) { MARK_BUS markBus = new MARK_BUS(); MARK_OBJ markObj = markBus.GetByKey( new fieldpara("STUDENTCODE", studentCode, 0), new fieldpara("COURSECODE", courseCode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0) ); if (markObj == null) ret = -1; else { // kiểm tra đã tồn tại bản ghi có markcode và coursecode truyền vào chưa EXAMHALLSTUDENT_OBJ obj = bus.GetByKey( new fieldpara("MARKCODE", markObj.CODE, 0), new fieldpara("COURSECODE", courseCode, 0), new fieldpara("EXAMTIMECODE", examTimeCode, 0), new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0) ); if (obj != null) { ret = -2; return Json(new { ret }, JsonRequestBehavior.AllowGet); } EXAMHALLSTUDENT_OBJ objTemp = new EXAMHALLSTUDENT_OBJ(); objTemp.CODE = bus.genNextCode(objTemp); objTemp.MARKCODE = markObj.CODE; objTemp.COURSECODE = courseCode; objTemp.EXAMTIMECODE = examTimeCode; objTemp.LOCK = 0; objTemp.EDITTIME = DateTime.Now; objTemp.EDITUSER = _ses.loginCode; objTemp.UNIVERSITYCODE = _ses.gUNIVERSITYCODE; ret = bus.insert(objTemp); } markBus.CloseConnection(); } bus.CloseConnection(); } return Json(new { ret }, 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); }
public JsonResult delete(List <string> listCode) { int ret = 0; STUDENT_BUS bus = new STUDENT_BUS(); foreach (var id in listCode) { STUDENT_OBJ obj = bus.GetByID(new STUDENT_OBJ.BusinessObjectID(id)); //Kiểm tra đối tượng còn trên srrver hay không if (obj == null) { ret = -1; } //Kiểm tra thuộc đơn vị triển khai if (obj.UNIVERSITYCODE != ses.gUNIVERSITYCODE) { ret = -4; } if (ret >= 0) { MARK_BUS busMark = new MARK_BUS(); //kiểm tra sinh viên có trong lớp môn học nào không ret = busMark.checkCode(null, new fieldpara("STUDENTCODE", id)); busMark.CloseConnection(); //exist children if (ret != 0) { ret = -2; } } if (ret >= 0) { //xóa ret = bus.delete(obj._ID); } } //close connection bus.CloseConnection(); return(Json(new { ret = ret }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// get danh sách các course của 1 sinh viên /// </summary> /// <returns></returns> public JsonResult GetByStudent() { var ret = 1; string studentcode = ""; if (_ses.loginType.Equals("STUDENT")) { studentcode = _ses.loginCode; } else { ret = -1; } List <COURSE_OBJ> liCourse = null; if (ret >= 0) { MARK_BUS bus = new MARK_BUS(); liCourse = new List <COURSE_OBJ>(); List <fieldpara> lipa = new List <fieldpara>(); if (!string.IsNullOrEmpty(studentcode)) { lipa.Add(new fieldpara("STUDENTCODE", studentcode, 0)); } lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); var liMark = bus.getAllBy2("CODE", lipa.ToArray()); if (liMark != null) { foreach (var mark in liMark) { liCourse.Add(mark._COURSECODE); } } bus.CloseConnection(); } return(Json(new { data = liCourse, ret }, JsonRequestBehavior.AllowGet)); }
public int ProcessExamFormAuto(string examtimecode, string coursecode, int testcount) { int ret = 0; //Lấy được đợt thi EXAMTIME_BUS bus = new EXAMTIME_BUS(); EXAMTIME_OBJ obj = bus.GetByID(new EXAMTIME_OBJ.BusinessObjectID(examtimecode)); EXAMFORM_BUS busExamfom = new EXAMFORM_BUS(); List <EXAMFORM_OBJ> liExamform = new List <EXAMFORM_OBJ>(); bus.CloseConnection(); if (obj == null) { ret = -1; } //Lấy được lớp học MARK_BUS busMark = new MARK_BUS(); List <MARK_OBJ> liMark = busMark.getAllBy2(new fieldpara("COURSECODE", coursecode)); busMark.CloseConnection(); if (ret >= 0) { liExamform = CreateExamForm(obj, testcount, out ret); } EXAMFORMDETAIL_BUS busExamformdetail = new EXAMFORMDETAIL_BUS(); EXAMFORMDETAIL_OBJ objExamformdetail = new EXAMFORMDETAIL_OBJ(); List <EXAMFORMDETAIL_OBJ> liExamformdetail = new List <EXAMFORMDETAIL_OBJ>(); //Danh sách cấu trúc đề TESTSTRUCTDETAIL_BUS busTeststructdetail = new TESTSTRUCTDETAIL_BUS(); List <TESTSTRUCTDETAIL_OBJ> liTestStructDetail = busTeststructdetail.getByTestStruct(obj.TESTSTRUCTCODE, _ses.gUNIVERSITYCODE); busTeststructdetail.CloseConnection(); string currentCode = busExamformdetail.genNextCode(objExamformdetail); if (ret >= 0) { foreach (EXAMFORM_OBJ objtem in liExamform) { ret = CreateExamFormDetail(ref liExamformdetail, objtem, liTestStructDetail, ref currentCode); if (ret < 0) { break; } } } //Gán sinh viên vào danh sách đề List <EXAMHALLSTUDENT_OBJ> liExamhallstudent = new List <EXAMHALLSTUDENT_OBJ>(); EXAMHALLSTUDENT_BUS busExamhallstudent = new EXAMHALLSTUDENT_BUS(); EXAMHALLSTUDENT_OBJ objExamhallstudent = new EXAMHALLSTUDENT_OBJ(); currentCode = busExamhallstudent.genNextCode(objExamhallstudent); int i = 0; //Thêm tất cả sinh viên foreach (MARK_OBJ objMar in liMark) { //Gán sinh viên vào examhall student objExamhallstudent = new EXAMHALLSTUDENT_OBJ(); objExamhallstudent.CODE = currentCode; currentCode = busExamhallstudent.genNextCode(objExamhallstudent, currentCode); objExamhallstudent.COURSECODE = coursecode; objExamhallstudent.EDITTIME = DateTime.Now; objExamhallstudent.EDITUSER = _ses.loginCode; objExamhallstudent.EXAMFORMCODE = liExamform[i % testcount].CODE; objExamhallstudent.EXAMTIMECODE = examtimecode; i++; objExamhallstudent.EXAMHALLCODE = ""; objExamhallstudent.MARKCODE = objMar.CODE; objExamhallstudent.UNIVERSITYCODE = _ses.gUNIVERSITYCODE; liExamhallstudent.Add(objExamhallstudent); } if (ret >= 0) { busExamfom.BeginTransaction(); busExamformdetail.setConnection(busExamfom); busExamhallstudent.setConnection(busExamfom); ret = busExamfom.InsertMultiItems(liExamform); if (ret >= 0) { ret = busExamformdetail.InsertMultiItems(liExamformdetail); } if (ret >= 0) { ret = busExamhallstudent.InsertMultiItems(liExamhallstudent); } if (ret >= 0) { busExamfom.CommitTransaction(); } else { busExamfom.RollbackTransaction(); } } busExamfom.CloseConnection(); return(ret); }
/// <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> /// xóa 1 couse , kiểm tra xem có các bản ghi con phụ thuộc hay không trước khi xóa /// </summary> /// <param name="code"></param> /// <returns></returns> public JsonResult Delete(List <string> code) { //cho phep xoa hay khong //ret= -2 ;//sử dụng trong trường hợp xóa đơn một bản ghi có tham chiếu // ret= 0 : không có gì để xóa //ret = 1: //xóa thành công //ret= -3 : Bản ghi hiện tại không còn trong hệ thống, truy cập trái phép COURSE_BUS busCourse = new COURSE_BUS(); List <fieldpara> lipa = new List <fieldpara>(); MARK_BUS busMark = new MARK_BUS(); var ret = 0; List <COURSE_OBJ.BusinessObjectID> deleteList = new List <COURSE_OBJ.BusinessObjectID>(); foreach (string item in code) { var course = busCourse.GetByID(new COURSE_OBJ.BusinessObjectID(item)); //check xem course co ton tai ban ghi phu thuoc nao khong if (course == null) { ret = -3; return(Json(new { ret }, JsonRequestBehavior.AllowGet)); } lipa.Clear(); lipa.Add(new fieldpara("COURSECODE", item, 0)); lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); //kiểm tra xem có bản ghi con hay không //checkcode sẽ trả về là 0 nếu không có con // nhiều hơn 0 tức là tồn tại bản ghi con // nhỏ hơn 0 tức là lỗi hệ thống var marks = busMark.checkCode(null, lipa.ToArray()); //cho phép xóa thì nhét vào list xóa không thì không cho phép xóa nhưng cũng không cần thông báo //vì có trường hợp xóa nhiều bản ghi và chỉ xóa 1 bản ghi nên cần xác định rõ trước khi xóa một bản ghi cha nào đó thì có tồn tại liên kết đến bản ghi con hay không //bad request if (marks < 0) { ret = -3; return(Json(new { ret }, JsonRequestBehavior.AllowGet)); } //add to delete list if (marks == 0) { deleteList.Add(course._ID); } } //nếu phần tử nằm trong danh sách xóa có thì sẽ phải xóa //xóa 1 bản ghi và trong trường hợp muốn xóa đơn lẻ //mà bản ghi đưa vào không có ràng buộc bản ghi con //có 1 bản ghi và bản ghi đó không được phép xóa if (code.Count == 1 && deleteList.Count < 1) { ret = -2; } //còn đây là trường hợp xóa nhiều, cứ thông báo là xóa thành công là xong //mặc dù còn có các bản ghi không được xóa còn có tham chiếu nhưng không nên thông báo quá chi tiết if (deleteList.Count >= 1) { //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 busCourse.BeginTransaction(); ret = busCourse.DeletetMultiItems(deleteList); 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() busCourse.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 busCourse.CommitTransaction(); } } busMark.CloseConnection(); busCourse.CloseConnection(); return(Json(new { ret }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// xóa sinh viên của lớp môn học /// cho phep xoa hay khong /// ret= -2 ;//sử dụng trong trường hợp xóa đơn một bản ghi có tham chiếu /// ret= 0 : không có gì để xóa /// ans = 1: //xóa thành công /// ret= -3 : Bản ghi hiện tại không còn trong hệ thống, truy cập trái phép /// </summary> /// <param name="listStudentCode">danh sách mã sinh viên</param> /// <param name="coursecode">mã lớp môn học</param> /// <returns></returns> public JsonResult DeleteStudentCourse(List <string> listStudentCode, string coursecode) { int ret = 0; EXAMHALLSTUDENT_BUS busExam = new EXAMHALLSTUDENT_BUS(); List <fieldpara> lipa = new List <fieldpara>(); MARK_BUS busMark = new MARK_BUS(); List <MARK_OBJ.BusinessObjectID> deleteListId = new List <MARK_OBJ.BusinessObjectID>(); //kiểm tra tất cả các item đưa vào xem có con hay không foreach (var item in listStudentCode) { var mark = busMark.GetByID(new MARK_OBJ.BusinessObjectID(item)); //check xem subject có còn tồn tại trong hệ thống hay không if (mark == null) { ret = -3; return(Json(new { ret }, JsonRequestBehavior.AllowGet)); } // ** chú ý: nếu muốn xóa nhiều bản ghi thì cần phải clear lipa trước khi sử dụng nó lại lipa.Clear(); lipa.Add(new fieldpara("MARKCODE", item, 0)); lipa.Add(new fieldpara("COURSECODE", coursecode, 0)); lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); //checkcode sẽ trả về là 0 nếu không có con // nhiều hơn 0 tức là tồn tại bản ghi con // nhỏ hơn 0 tức là lỗi hệ thống var exams = busExam.checkCode(null, lipa.ToArray()); //nếu không có con thì cho vào danh sách xóa //tức là checkcode sẽ trả về là số lượng bản ghi con phụ thuộc //bad request if (exams < 0) { //nếu mà gặp lỗi thì thoát luôn không cần xóa gì nữa ret = -3; return(Json(new { ret }, JsonRequestBehavior.AllowGet)); } if (exams == 0) { //add to delete list deleteListId.Add(mark._ID); } } //nếu phần tử nằm trong danh sách xóa có thì sẽ phải xóa //xóa 1 bản ghi và trong trường hợp muốn xóa đơn lẻ mà bản ghi đưa vào không tồn tại con ////có 1 bản ghi và bản ghi đó không được phép xóa if (listStudentCode.Count == 1 && deleteListId.Count < 1) { //không cho xóa 1 bản ghi ret = -2; } //còn đây là trường hợp xóa nhiều, cứ thông báo là xóa thành công là xong //mặc dù còn có các bản ghi không được xóa còn có tham chiếu nhưng không nên thông báo quá chi tiết if (deleteListId.Count >= 1) { //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 busMark.BeginTransaction(); ret = busMark.DeletetMultiItems(deleteListId); 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() busMark.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 busMark.CommitTransaction(); } } //close all connection busExam.CloseConnection(); busMark.CloseConnection(); return(Json(new { ret }, JsonRequestBehavior.AllowGet)); }