/// <summary> /// lấy chi tiết câu hỏi, câu trả lời theo nhóm câu hỏi /// </summary> /// <param name="questiongroupcode">mã nhóm câu hỏi</param> /// <returns></returns> public JsonResult GetById(string questiongroupcode) { var ret = 0; var numberQuestion = 0; List <QUESTION_OBJ> liQuestion = new List <QUESTION_OBJ>(); List <ANSWER_OBJ> liAnswer = new List <ANSWER_OBJ>(); QUESTIONGROUP_BUS bus = new QUESTIONGROUP_BUS(); var obj = bus.GetByID(new QUESTIONGROUP_OBJ.BusinessObjectID(questiongroupcode)); if (obj != null) { // lấy danh sách câu hỏi tương ứng QUESTION_BUS questionBus = new QUESTION_BUS(); liQuestion = questionBus.getAllBy2("CODE", new fieldpara("QUESTIONGROUPCODE", questiongroupcode, 0)); if (liQuestion != null) { // lấy danh sách câu trả lời ANSWER_BUS answerBus = new ANSWER_BUS(); liAnswer = answerBus.getAllBy2("CODE", new fieldpara("QUESTIONGROUPCODE", questiongroupcode, 0)); if (liAnswer == null) { ret = -3; } answerBus.CloseConnection(); } else { ret = -2; } if (liQuestion != null) { numberQuestion = liQuestion.Count; } questionBus.CloseConnection(); } else { ret = -1; } bus.CloseConnection(); var jsonResult = Json(new { numberQuestion, //so luong cau hoi ObjexamHallstudent = obj, //examhallstudent code liQuestiongroup = obj, //danh sach nhom cau hoi li_question = liQuestion, //danh sach cac cau hoi li_answer = liAnswer, //danh sach tat ca cac cau tra loi ret //ok }, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }
/// <summary> /// xóa danh sách các answer và question mà trong đó các questiongroup được trả về để GetQuestionxóa,không cần thông báo, nếu có con thì không cho xóa, còn nếu không có thì xóa nó đi,thanks /// </summary> /// <param name="code"></param> /// <returns></returns> public JsonResult DeleteQgroup(List <string> code) { int ans = -1; if (code != null) { var bus = new QUESTIONGROUP_BUS(); foreach (string t in code) { var ret = 0; if (t != null) { var item = bus.GetByID(new QUESTIONGROUP_OBJ.BusinessObjectID(t)); if (item == null) { continue; } if (ret >= 0) { QUESTION_BUS busQuestion = new QUESTION_BUS(); //check children ret = busQuestion.checkCode(null, new fieldpara("QUESTIONGROUPCODE", t)); busQuestion.CloseConnection(); //check children if (ret > 0) { ANSWER_BUS busAnswer = new ANSWER_BUS(); ret = busAnswer.checkCode(null, new fieldpara("QUESTIONGROUPCODE", t)); busAnswer.CloseConnection(); } //exist children if (ret != 0) { ret = -1; } } if (ret == 0) { ans = 1; bus.delete(item._ID); } } } bus.CloseConnection(); } return(Json(new { ret = ans }, JsonRequestBehavior.AllowGet)); }
public JsonResult UpdateQgroup(QUESTIONGROUP_OBJ obj) { QUESTIONTYPE_BUS busQuestiontype = new QUESTIONTYPE_BUS(); QUESTIONTYPE_OBJ objQuestiontype = busQuestiontype.GetByID(new QUESTIONTYPE_OBJ.BusinessObjectID(obj.QUESTIONTYPECODE)); busQuestiontype.CloseConnection(); QUESTIONGROUP_BUS bus = new QUESTIONGROUP_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 QUESTIONGROUP_OBJ.BusinessObjectID(obj.CODE)) : new QUESTIONGROUP_OBJ(); //Lỗi phần dưới đưa lên if (ret < 0 || objQuestiontype == null) { //đó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)); } //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.SUBJECTCODE = obj.SUBJECTCODE; objTemp.SUBJECTCONTENTCODE = obj.SUBJECTCONTENTCODE; objTemp.NOTE = obj.NOTE; objTemp.LOCK = obj.LOCK; objTemp.CONTENT = obj.CONTENT; objTemp.QUESTIONTYPECODE = obj.QUESTIONTYPECODE; objTemp.QUESTIONUSECODELIST = obj.QUESTIONUSECODELIST; objTemp.MARK = obj.MARK; List <string> listSourcePath = _ses.tSOURCEPATHSESSION; List <string> listDestinationPath = _ses.tDESTINATIONPATHSESSION; if (listDestinationPath != null) { for (int i = 0; i < listSourcePath.Count; i++) { if (objTemp.CONTENT.Contains((listSourcePath[i]))) { objTemp.CONTENT = objTemp.CONTENT.Replace(listSourcePath[i], listDestinationPath[i]); } } } QUESTION_BUS busQuestion = new QUESTION_BUS(); QUESTION_OBJ objQuestion = null; ANSWER_BUS busAnswer = new ANSWER_BUS(); ANSWER_OBJ objAnser = null; //Dành cho danh sách các phương pháp sử dụng // obj_temp.THEORDER = obj.THEORDER; //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; //Sinh tự động các bản ghi theo yêu cầu switch (objQuestiontype.CODEVIEW) { case "WR": //Tự động sinh ra câu hỏi objQuestion = new QUESTION_OBJ { QUESTIONGROUPCODE = objTemp.CODE }; objQuestion.CODE = busQuestion.genNextCode(objQuestion); objQuestion.NAME = "Câu hỏi cho:" + objTemp.NAME; objQuestion.MARK = objTemp.MARK; //Tự động sinh ra câu tra lời objAnser = new ANSWER_OBJ(); objAnser.CODE = busAnswer.genNextCode(objAnser); objAnser.QUESTIONCODE = objQuestion.CODE; objAnser.QUESTIONGROUPCODE = objTemp.CODE; objAnser.CODEVIEW = "1"; objAnser.THEORDER = 1; objAnser.NAME = objTemp.NAME; objAnser.CONTENT = ""; objAnser.TRUEANSWER = 1; break; case "LA": objQuestion = new QUESTION_OBJ { QUESTIONGROUPCODE = objTemp.CODE }; objQuestion.CODE = busQuestion.genNextCode(objQuestion); objQuestion.NAME = "Câu hỏi cho:" + objTemp.NAME; objQuestion.MARK = objTemp.MARK; //Tự động sinh ra câu tra lời objAnser = new ANSWER_OBJ(); objAnser.CODE = busAnswer.genNextCode(objAnser); objAnser.QUESTIONCODE = objQuestion.CODE; objAnser.QUESTIONGROUPCODE = objTemp.CODE; objAnser.CODEVIEW = "1"; objAnser.THEORDER = 1; objAnser.NAME = objTemp.NAME; objAnser.CONTENT = ""; objAnser.TRUEANSWER = 1; break; //trường hợp câu hỏi tổng hợp cần sinh ra 3 câu trả lời là true/false/not given, nếu muốn biết được câu trả lời nào là đúng thì cần case "MS": //Tự động sinh ra câu hỏi objQuestion = new QUESTION_OBJ { QUESTIONGROUPCODE = objTemp.CODE }; objQuestion.CODE = busQuestion.genNextCode(objQuestion); objQuestion.NAME = "Câu hỏi cho:" + objTemp.NAME; objQuestion.MARK = objTemp.MARK; break; } } List <QUESTIONGROUPUSE_OBJ> liQuestiongroupuse = new List <QUESTIONGROUPUSE_OBJ>(); QUESTIONGROUPUSE_BUS busQuestiongroupuse = new QUESTIONGROUPUSE_BUS(); string[] listUse = obj.QUESTIONUSECODELIST.Split(','); foreach (var item in listUse) { QUESTIONGROUPUSE_OBJ objQuestiongroupuse = new QUESTIONGROUPUSE_OBJ { LOCK = 0, LOCKDATE = DateTime.Now, QUESITONGROUPCODE = objTemp.CODE, QUESTIONUSECODE = item }; liQuestiongroupuse.Add(objQuestiongroupuse); } bus.BeginTransaction(); busQuestiongroupuse.setConnection(bus); busAnswer.setConnection(bus); busQuestion.setConnection(bus); 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) { // ReSharper disable once PossiblyMistakenUseOfParamsMethod ret = busQuestiongroupuse.Delete(new fieldpara("QUESITONGROUPCODE", objTemp.CODE)); } if (ret >= 0) { ret = busQuestiongroupuse.InsertMultiItems(liQuestiongroupuse); } //Cập nhật câu hỏi nếu nó được sinh tự động if (objQuestion != null && ret >= 0) { ret = busQuestion.Insert(objQuestion); } //Cập nhật answer nếu được sinh tự động if (objAnser != null && ret >= 0) { ret = busAnswer.Insert(objAnser); } if (ret >= 0) { _ses.tSOURCEPATHSESSION?.Clear(); _ses.tDESTINATIONPATHSESSION?.Clear(); bus.CommitTransaction(); } else { bus.RollbackTransaction(); } int pagecount = 0; int currentpage = 0; string questiongroup = JsonConvert.SerializeObject(objTemp); bus.CloseConnection(); //some thing like that return(Json(new { add, ret, questiongroup, pagecount, currentpage, obj = objTemp }, JsonRequestBehavior.AllowGet)); }