public JsonResult CheckCodeViewExit(string code, string codeview)
        {
            int ret;
            QUESTIONTYPE_BUS bus = new QUESTIONTYPE_BUS();
            QUESTIONTYPE_OBJ obj;

            if (!string.IsNullOrEmpty(code))
            {
                //check for update
                obj = bus.GetByKey(new fieldpara("CODEVIEW", codeview, 0),
                                   new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));

                if (obj == null)
                {
                    //change codeview
                    ret = 1;
                }
                else
                {
                    //change other feature,not codeview
                    ret = (code == obj.CODE) ? 1 : -1;
                }
            }
            else
            {
                obj = bus.GetByKey(new fieldpara("CODEVIEW", codeview, 0),
                                   new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                ret = (obj == null) ? 1 : -1;
            }
            bus.CloseConnection();
            return(Json(new { sussess = ret }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetAllSearch(string code, string codetype, string name, string nametype, string note, string notetype)
        {
            //Khai báo lấy dữ liệu
            QUESTIONTYPE_BUS bus  = new QUESTIONTYPE_BUS();
            List <fieldpara> lipa = new List <fieldpara>();

            //lipa.Add(new fieldpara("UNIVERSITYCODE", ses.gUNIVERSITYCODE, 0));
            //lipa.Add(new fieldpara("THETYPE", codetype));
            //lipa.Add(new fieldpara("PARENTCODE", code));
            if (!string.IsNullOrEmpty(code))
            {
                lipa.Add(new fieldpara("CODEVIEW", code, (int)(codetype.ToUpper() == "TRUE" ? searchType.NONE : searchType.LIKE)));
            }
            if (!string.IsNullOrEmpty(name))
            {
                lipa.Add(new fieldpara("NAME", name, (int)(nametype.ToUpper() == "TRUE" ? searchType.NONE : searchType.LIKE)));
            }
            if (!string.IsNullOrEmpty(note))
            {
                lipa.Add(new fieldpara("NOTE", note, (int)(notetype.ToUpper() == "TRUE" ? searchType.NONE : searchType.LIKE)));
            }
            //order by theorder, with pagesize and the page
            var li = bus.getAllBy2(" THEORDER ", lipa.ToArray());

            bus.CloseConnection();
            //li = li.Skip((page - 1) * pageSize).Take(pageSize).ToList();
            return(Json(new
            {
                lst = li, //Danh sách
                ret = 0   //ok
            }, JsonRequestBehavior.AllowGet));
        }
        public QUESTIONTYPE_OBJ GetById(string code)
        {
            QUESTIONTYPE_BUS bus = new QUESTIONTYPE_BUS();
            var obj = bus.GetByID(new QUESTIONTYPE_OBJ.BusinessObjectID(code));

            return(obj);
        }
        /// <summary>
        /// Lấy  Mã hiển thi, và số đếm lớn nhất của questiontype
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public JsonResult GetMaxCount(string code)
        {
            QUESTIONTYPE_BUS bus = new QUESTIONTYPE_BUS();
            int count;
            QUESTIONTYPE_OBJ obj = bus.getMaxCount(code, out count);

            bus.CloseConnection();
            var ret = 0;

            if (obj == null)
            {
                ret = -1;
            }
            return(Json(new { ret = ret, obj = obj, count = count }, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Lấy hiển thị lên combobox
        /// </summary>
        /// <returns></returns>
        public JsonResult GetAll()
        {
            //Kiểm tra phân quyền
            List <QUESTIONTYPE_OBJ> li = new List <QUESTIONTYPE_OBJ>();
            //Lây dữ iệu
            QUESTIONTYPE_BUS bus  = new QUESTIONTYPE_BUS();
            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
            lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
            lipa.Add(new fieldpara("LOCK", 0));
            //order by theorder, with pagesize and the page
            li = bus.getAllBy2(" CODE ", lipa.ToArray());
            var ret = li != null ? 1 : -1;

            bus.CloseConnection();
            //Chỉ số đầu tiên của trang hiện tại (đã trừ -1)
            //Trả về cho client
            return(Json(new { lst = li, ret = ret }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Delete(List <string> code)
        {
            var ret   = 0;
            var error = false;

            if (code != null)
            {
                var bus = new QUESTIONTYPE_BUS();
                for (var i = 0; i < code.Count; i++)
                {
                    if (code[i] != null)
                    {
                        var item = bus.GetByID(new QUESTIONTYPE_OBJ.BusinessObjectID(code[i]));
                        if (item == null)
                        {
                            ret = -1; error = true; continue;
                        }
                        if (item.UNIVERSITYCODE != _ses.gUNIVERSITYCODE)
                        {
                            ret = -4;
                        }
                        if (ret >= 0)
                        {
                            ret = bus.delete(item._ID);
                        }
                        if (!error && ret < 0)
                        {
                            error = true;
                        }
                    }
                }
                bus.CloseConnection();
            }

            ret = error ? -1 : 0;
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetList(int page, int pageSize)
        {
            //mặc định cho phần trang
            if (pageSize == 0)
            {
                pageSize = AppConfig.item4page();
            }
            if (page < 1)
            {
                page = 1;
            }
            //Khai báo lấy dữ liệu
            QUESTIONTYPE_BUS bus  = new QUESTIONTYPE_BUS();
            List <fieldpara> lipa = new List <fieldpara> {
                new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)
            };
            int countpage;
            //order by theorder, with pagesize and the page
            var data = bus.getAllBy2("THEORDER", pageSize, page, out countpage, lipa.ToArray());
            // tất cả các bản ghi
            List <QUESTIONTYPE_OBJ> totalData = bus.getAllBy2("THEORDER", lipa.ToArray());
            int totalItem = totalData.Count;

            bus.CloseConnection();
            //Chỉ số đầu tiên của trang hiện tại (đã trừ -1)
            int startpage = (page - 1) * pageSize;
            //Trả về client
            var a = JsonConvert.SerializeObject(data);

            return(Json(new
            {
                data,                   //Danh sách
                data2 = a,
                totalItem,              //số lượng bản ghi
                totalPage = countpage,
                startindex = startpage, //bắt đầu số trang
                ret = 0                 //ok
            }, 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));
        }
        public JsonResult Update(QUESTIONTYPE_OBJ obj)
        {
            QUESTIONTYPE_BUS bus = new QUESTIONTYPE_BUS();
            //kiểm tra tồn tại cho trường hợp sửa
            QUESTIONTYPE_OBJ objTemp;
            int ret = 0;
            int add = 0;

            objTemp = !string.IsNullOrEmpty(obj.CODE) ? bus.GetByID(new QUESTIONTYPE_OBJ.BusinessObjectID(obj.CODE)) : new QUESTIONTYPE_OBJ();

            if (ret < 0)
            {
                //đó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.LOCK           = obj.LOCK;
            objTemp.NOTE           = obj.NOTE;
            objTemp.LANGUAGECODE   = _ses.getLang();
            objTemp.THEORDER       = obj.THEORDER;
            objTemp.UNIVERSITYCODE = _ses.gUNIVERSITYCODE;

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

            if (ret < 0)
            {
                bus.RollbackTransaction();
            }
            else
            {
                bus.CommitTransaction();
            }
            bus.CloseConnection();
            return(Json(new
            {
                ret,
                obj = objTemp
            }, JsonRequestBehavior.AllowGet));
        }
Beispiel #10
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));
        }