예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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));
        }
예제 #3
0
        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));
        }