/// <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); }
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)); }
/// <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; }