/// <summary> /// get đợt thi theo mã /// </summary> /// <param name="id">mã đợt thi</param> /// <returns></returns> public JsonResult GetById(string id) { var ret = 0; EXAMTIME_BUS bus = new EXAMTIME_BUS(); var data = bus.GetByID(new EXAMTIME_OBJ.BusinessObjectID(id)); if (data == null) { ret = -1; } return(Json(new { data, ret }, JsonRequestBehavior.AllowGet)); }
/// <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> /// lây danh sách tất cả các đợt thi của 1 môn học /// </summary> ///<param name="subjectcode">mã môn học</param> /// <returns></returns> public JsonResult GetBySubject(string subjectcode) { var ret = -1; EXAMTIME_BUS bus = new EXAMTIME_BUS(); var data = bus.getAllBy2("CODE", new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0), new fieldpara("SUBJECTCODE", subjectcode, 0)); if (data != null) { ret = 0; } bus.CloseConnection(); return(Json(new { lst = data, 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> /// Cập nhật một bản ghi được gửi lên từ phía client /// </summary> public JsonResult Update(EXAMTIME_OBJ obj, string parentcode = "DH") { EXAMTIME_BUS bus = new EXAMTIME_BUS(); int ret; int add = 0; EXAMTIME_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 EXAMTIME_OBJ.BusinessObjectID(obj.CODE)); if (objTemp == null || objTemp.UNIVERSITYCODE != _ses.gUNIVERSITYCODE) { ret = -4; //đóng kết nối trước khi trả về bus.CloseConnection(); //ban ghi sửa đã bị xóa return(Json(new { sussess = ret }, JsonRequestBehavior.AllowGet)); } } else { objTemp = new EXAMTIME_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.EDUCATIONLEVELCODE = "DH"; //obj_temp.EDUCATIONLEVELCODE = obj.EDUCATIONLEVELCODE; objTemp.SUBJECTCODE = obj.SUBJECTCODE; objTemp.UNIVERSITYCODE = _ses.gUNIVERSITYCODE; objTemp.NOTE = obj.NOTE; objTemp.LOCK = obj.LOCK; objTemp.YEAR = obj.YEAR; objTemp.TERM = obj.TERM; objTemp.MAXSTUDENTPERTEST = obj.MAXSTUDENTPERTEST; objTemp.QUESTIONUSE = obj.QUESTIONUSE; objTemp.STUDENTAMOUNTHALL = obj.STUDENTAMOUNTHALL; objTemp.STUDENTINBAG = obj.STUDENTINBAG; objTemp.TESTSTRUCTCODE = obj.TESTSTRUCTCODE; objTemp.TESTCOUNT = obj.TESTCOUNT; objTemp.WHOIS = bus.encrypt(objTemp); //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) { List <fieldpara> lipa = new List <fieldpara>(); //Lọc đơn vị cấp trên; '' sẽ là không co đơn vị cấp trên if (!string.IsNullOrEmpty(parentcode)) { lipa.Add(new fieldpara("EDUCATIONLEVELCODE", parentcode, 0)); } lipa.Add(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(); //some thing like that return(Json(new { ret, pagecount, currentpage }, JsonRequestBehavior.AllowGet)); }
public JsonResult Delete(List <string> code) { var ret = 0; var bus = new EXAMTIME_BUS(); List <EXAMTIME_OBJ.BusinessObjectID> deletedata = new List <EXAMTIME_OBJ.BusinessObjectID>(); List <fieldpara> lipa = new List <fieldpara>(); if (code == null) { ret = -1; } else { foreach (string t in code) { if (t != null) { var item = bus.GetByID(new EXAMTIME_OBJ.BusinessObjectID(t)); if (item != null) { lipa.Clear(); lipa.Add(new fieldpara("EXAMTIMECODE", t, 0)); lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)); ret = new EXAMHALL_BUS().checkCode(null, lipa.ToArray()); var ret1 = new EXAMHALLSTUDENT_BUS().checkCode(null, lipa.ToArray()); var ret2 = new EXAMFORM_BUS().checkCode(null, lipa.ToArray()); if (ret == 0 && ret1 == 0 && ret2 == 0) { deletedata.Add(item._ID); } else { ret = -3; return(Json(new { ret }, JsonRequestBehavior.AllowGet)); } } } } } if (deletedata.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 bus.BeginTransaction(); ret = bus.DeletetMultiItems(deletedata); 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() bus.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 bus.CommitTransaction(); } } bus.CloseConnection(); return(Json(new { ret }, JsonRequestBehavior.AllowGet)); }
/// <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; }