/// <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);
        }
        /// <summary>
        /// sinh chi tiết đề thi
        /// </summary>
        /// <param name="examformCode">mã đề thi</param>
        /// <param name="testStructCode"></param>
        /// <returns></returns>
        public int CreateExamFormDetail(ref List <EXAMFORMDETAIL_OBJ> liExamformdetail, EXAMFORM_OBJ objExamform, List <TESTSTRUCTDETAIL_OBJ> liTestStructDetail, ref string currentCode)
        {
            int    ret = 0;
            Random rnd = new Random();

            EXAMFORMDETAIL_BUS bus = new EXAMFORMDETAIL_BUS();
            EXAMFORMDETAIL_OBJ obj = new EXAMFORMDETAIL_OBJ();

            //            List<EXAMFORMDETAIL_OBJ> liExamformdetail = new List<EXAMFORMDETAIL_OBJ>();
            //Chuẩn bị các mã
            //string currentCode = bus.genNextCode(obj);

            foreach (var testStructDetail in liTestStructDetail)
            {
                int amountQues = testStructDetail.AMOUNT; // số câu hỏi
                                                          // double toTalMark = testStructDetail.TOTALMARK; // tổng số điểm
                if (amountQues > 0)                       // nếu có câu hỏi trong cấu trúc đề thi
                {
                    string subjectContentCode = testStructDetail.SUBJECTCONTENTCODE;
                    string questionTypeCode   = testStructDetail.QUESTIONTYPECODE;
                    int    countQues          = 0;                                        //tổng số câu hỏi đã lấy được
                                                                                          //   double countMark = 0; // tổng số điểm lấy được
                                                                                          // get ListQuestionGroup by subjectContentCode and questiontypecode
                    List <QUESTIONGROUP_OBJ> liQuesGroup           = new QuestionController().GetQGroupBySbjContent(subjectContentCode, questionTypeCode);
                    List <string>            selectedQuesGroupCode = new List <string>(); // danh sách nhóm câu hỏi đã được chọn
                    //Random ra câu hỏi,
                    //random được câu nào thì remove câu đó khỏi danh sách ban đầu (ko bị random lại)
                    while (liQuesGroup.Count > 0 && countQues < amountQues)
                    {
                        int r = rnd.Next(0, liQuesGroup.Count);
                        QUESTIONGROUP_OBJ questionGroup = liQuesGroup[r];
                        selectedQuesGroupCode.Add(questionGroup.CODE);
                        liQuesGroup.RemoveAt(r);
                        countQues++;
                    }
                    // insert examformdetail

                    //ret = InsertExamFormDetail(objExamform.CODE, selectedQuesGroupCode, testStructDetail.CODE);
                    //Tính toán các bước để xác định các được sinh ra

                    for (int i = 0; i < selectedQuesGroupCode.Count; i++)
                    {
                        obj = new EXAMFORMDETAIL_OBJ();
                        obj.EXAMFORMCODE         = objExamform.CODE;
                        obj.QUESTIONGROUPCODE    = selectedQuesGroupCode[i];
                        obj.TESTSTRUCTDETAILCODE = testStructDetail.CODE;
                        obj.THEORDER             = i + 1;
                        obj.CODE = currentCode;
                        //Tính toán mã mới
                        currentCode = bus.genNextCode(obj, currentCode);
                        //Thêm vào danh sách chuẩn bị vào
                        liExamformdetail.Add(obj);
                    }
                }
            }
            //Insert here
            //ret = bus.InsertMultiItems(liExamformdetail);
            //bus.CloseConnection();
            return(ret);
        }
        public JsonResult Update(EXAMFORM_OBJ obj)
        {
            EXAMFORM_BUS bus = new EXAMFORM_BUS();
            int          ret;
            int          add = 0;
            EXAMFORM_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 EXAMFORM_OBJ.BusinessObjectID(obj.CODE));
                if (objTemp == null)
                {
                    ret = -4;
                    bus.CloseConnection();
                    //ban ghi sửa đã bị xóa
                    return(Json(new { sussess = ret }, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                objTemp = new EXAMFORM_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.SUBJECTCODE    = obj.SUBJECTCODE;
            objTemp.EXAMTIMECODE   = obj.EXAMTIMECODE;
            objTemp.NOTE           = obj.NOTE;
            objTemp.TESTSTRUCTCODE = obj.TESTSTRUCTCODE;
            //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)
            {
                objTemp._ID.CODE = objTemp.CODE;
                ret = bus.checkPage(objTemp._ID, "CODE", AppConfig.item4page(), out pagecount, out currentpage);
            }
            bus.CloseConnection();
            //some thing like that
            return(Json(new { ret, pagecount, currentpage }, JsonRequestBehavior.AllowGet));
        }
Exemple #5
0
        /// <summary>
        /// lấy chi tiết 1 đề thi
        /// </summary>
        /// <param name="examformcode">mã đề thi</param>
        /// <returns></returns>
        public JsonResult Preview(string examformcode)
        {
            int          ret            = 0;
            int          numberQuestion = 0;
            EXAMFORM_BUS busExamform    = new EXAMFORM_BUS();
            EXAMFORM_OBJ objExamform    = busExamform.GetByID((new EXAMFORM_OBJ.BusinessObjectID(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();
            }
            var jsonResult = Json(new
            {
                numberQuestion,                      //so luong cau hoi
                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
                ret                                  //ok
            }, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
Exemple #6
0
        /// <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);
        }
Exemple #7
0
        /// <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);
        }
Exemple #8
0
        /// <summary>
        /// lấy kết quả bài thi dựa trên mark code
        /// </summary>
        /// <param name="markcode"></param>
        /// <returns></returns>
        /// show questiongroup
        /// show question
        /// show answer
        /// put data//hide other answer
        public JsonResult ShowData(string markcode)
        {
            var ret = -1;

            int numberQuestion = 0;
            //dựa vào mã sinh viên thuộc lớp môn học nào sẽ xác định mã sinh bài thi của phòng nào đó cho môn học đó
            EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
            EXAMHALLSTUDENT_OBJ obj = bus.GetByKey(new fieldpara("MARKCODE", markcode, 0));

            bus.CloseConnection();
            //bài kiểm tra
            EXAMFORM_BUS busExamform = new EXAMFORM_BUS();
            EXAMFORM_OBJ objExamform = null;

            if (ret >= 0)
            {
                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> liQuestion  = 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)));
                }

                liQuestion = busQuestion.getAllBy2("CODE", lipa, lijoin);

                if (liQuestion == null)
                {
                    ret = -5;
                }
                else
                {
                    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();
            }

            var jsonResult = Json(new
            {
                numberQuestion,                        //so luong cau hoi
                ObjexamHallstudent = obj,              //examhallstudent code
                ObjexamForm        = objExamform,      //examform
                liExamformDetail   = liExamformdetail, //Danh sách   examdetail
                liQuestiongroup,
                li_question = liQuestion,
                li_answer   = liAnswer,
                ret//ok
            }, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
Exemple #9
0
        public JsonResult UpdateExamResult(List <QuestionAnswer> listobj, EXAMFORM_OBJ examform, List <EXAMFORMDETAIL_OBJ> listexamformdetail, string examhallstudentcode)
        {
            //bài thi của sinh viên sẽ đưa lên gồm có : mã câu hỏi,mã câu trả lời, nội dung câu trả lời
            // examformcode: mã đề thi , examformdetailcode: mã phần thi
            // answerfile: link file muốn lưu trên server cho bài thi nói
            ////list answer, QuestionAnswer {MaCauHoi,MaXTL}
            var ret = 0;
            int add = 0;
            QUESTIONTYPE_BUS        busQuestiontype = new QUESTIONTYPE_BUS();
            List <QUESTIONTYPE_OBJ> liQuestiontype  = busQuestiontype.getAllBy2();

            busQuestiontype.CloseConnection();
            //  list question answer
            //   List<QuestionAnswer> listStudentAnswer = JsonConvert.DeserializeObject<List<QuestionAnswer>>(listobj);
            List <QuestionAnswer> listStudentAnswer = listobj;

            if (listStudentAnswer.Count <= 0)
            {
                ret = -1;
            }
            //list EXAMFORMDETAIL_OBJ
            //  List<EXAMFORMDETAIL_OBJ> listEXamDetail = JsonConvert.DeserializeObject<List<EXAMFORMDETAIL_OBJ>>(listexamformdetail);
            List <EXAMFORMDETAIL_OBJ> listEXamDetail = listexamformdetail;

            if (listEXamDetail.Count <= 0)
            {
                ret = -2;
            }
            // list examform
            //  string exCode = examformcode;
            //   EXAMFORM_OBJ objExForm = JsonConvert.DeserializeObject<EXAMFORM_OBJ>(exCode);
            EXAMFORM_OBJ objExForm = examform;
            //examhallstudentcode
            string exHallcode = examhallstudentcode;
            //object examresult
            EXAMRESULT_BUS bus         = new EXAMRESULT_BUS();
            QUESTION_BUS   busQuestion = new QUESTION_BUS();

            // QUESTIONGROUP_BUS busQGroup = new QUESTIONGROUP_BUS();
            //   duyet trong list examformdetail
            foreach (var item in listEXamDetail)
            {
                //lay danh sach question theo tung questiongroup trong examformdetail
                List <QUESTION_OBJ> liQuestion = busQuestion.getAllBy2("CODE", new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE));
                //duyet trong list question
                foreach (var question in liQuestion)
                {
                    //duyet trong danh sach cau tra loi cua sinh vien de dua ra la cau hoi nay la cap nhat hay them moi
                    foreach (var answer in listStudentAnswer)
                    {
                        //kiem tra su ton tai cua cau hoi
                        if (answer.MaCauHoi == question.CODE)
                        {
                            //question group to determinecasse   writing
                            var objTemp = bus.GetByID(new EXAMRESULT_OBJ.BusinessObjectID(exHallcode, item.CODE, question.CODE));
                            //chua co thi tuc la them moi
                            if (objTemp == null)
                            {
                                add     = 1;
                                objTemp = new EXAMRESULT_OBJ();
                            }
                            objTemp.EXAMHALLSTUDENTCODE = exHallcode;
                            objTemp.EXAMFORMDETAILCODE  = item.CODE;
                            objTemp.EXAMFORMCODE        = objExForm.CODE;
                            objTemp.QUESTIONCODE        = question.CODE;
                            objTemp.QUESTIONGROUPCODE   = item.QUESTIONGROUPCODE;
                            switch (getCodeview(liQuestiontype, item.TESTSTRUCTDETAILCODE)) // thực chất là  item._QUESTIONGROUPCODE.QUESTIONTYPECODE nhưng do ko gửi được _QUESTIONGROUPCODE lên, do đó gán tạm TESTSTRUCTDETAILCODE = (item._QUESTIONGROUPCODE.QUESTIONTYPECODE)
                            {
                            //multichoice
                            //1
                            case "MC":    //"1707130001":
                                objTemp.ANSWERCODE = answer.MaCauTL;
                                objTemp.ANSWERTEXT = "";
                                break;

                            //single choice  case
                            //2
                            case "MS":
                                objTemp.ANSWERCODE = answer.MaCauTL;
                                objTemp.ANSWERTEXT = "";
                                break;

                            //case CO, true,false,not given
                            //3
                            case "CO":
                                objTemp.ANSWERCODE = answer.MaCauTL;
                                objTemp.ANSWERTEXT = "";
                                break;

                            //write
                            //4
                            case "WR":    // "1707130007":
                                objTemp.ANSWERCODE = "";
                                objTemp.ANSWERTEXT = answer.MaCauTL;
                                break;

                            //rewrite
                            //5
                            case "RW":    // "1707130004":
                                objTemp.ANSWERCODE = "";
                                objTemp.ANSWERTEXT = answer.MaCauTL;
                                break;

                            //NGHE NOI
                            //6
                            case "LA":    // "1708300007": //LA
                                objTemp.ANSWERFILE = GetName(answer.MaCauTL);
                                break;

                            //trường hợp điền từ vào ô trống
                            //7
                            case "FG":
                                objTemp.ANSWERCODE = "";
                                objTemp.ANSWERTEXT = answer.MaCauTL;
                                break;

                            //TRUONG HOP KEO THA VAO O TRONG
                            //8
                            case "FI":
                                objTemp.ANSWERCODE = answer.MaCauTL;
                                objTemp.ANSWERTEXT = "";
                                break;

                            // Keo tha vao o trong
                            //9
                            case "FF":
                                objTemp.ANSWERCODE = answer.MaCauTL;
                                objTemp.ANSWERTEXT = "";
                                break;

                            //cau hoi ghep doi
                            //10
                            case "PA":
                                objTemp.ANSWERCODE = answer.MaCauTL;
                                objTemp.ANSWERTEXT = "";
                                break;

                            //dạng câu hỏi sắp xếp lại câu
                            //11
                            case "RA":
                                objTemp.ANSWERTEXT = answer.MaCauTL;
                                objTemp.ANSWERCODE = "";
                                break;

                            default:
                                objTemp.ANSWERCODE = "";
                                objTemp.ANSWERTEXT = "";
                                break;
                            }
                            objTemp.LOCK     = objExForm.LOCK;
                            objTemp.LOCKDATE = DateTime.Now;
                            objTemp.MARK     = 0;
                            if (add > 0)
                            {
                                ret = bus.insert(objTemp);
                            }
                            else
                            {
                                objTemp._ID.QUESTIONCODE        = question.CODE;
                                objTemp._ID.EXAMFORMDETAILCODE  = item.CODE;
                                objTemp._ID.EXAMHALLSTUDENTCODE = exHallcode;
                                ret = bus.update(objTemp);
                            }
                        }
                    }
                }
            }
            if (ret >= 0)
            {
                _ses.tSOURCEPATHSESSION?.Clear();
                _ses.tDESTINATIONPATHSESSION?.Clear();
            }
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }