/// <summary>
 /// update bản ghi
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public int Update(EXAMHALLSTUDENT_OBJ obj)
 {
     int ret = 0;
     EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
     var objTemp = bus.GetByID(new EXAMHALLSTUDENT_OBJ.BusinessObjectID(obj.CODE));
     if (objTemp == null)
     {
         ret = -1;
     }
     else
     {
        // objTemp.EXAMFORMCODE = obj.EXAMFORMCODE;
         if (!string.IsNullOrWhiteSpace(obj.EXAMHALLCODE))
             objTemp.EXAMHALLCODE = obj.EXAMHALLCODE;
         objTemp.LOCK = obj.LOCK; // = 0: thi bình thường, = 1: hủy kết quả thi
         objTemp.REALBEGINTIME = obj.REALBEGINTIME;
         objTemp.REALENDTIME = obj.REALENDTIME;
         objTemp.FINALENDTIME = obj.FINALENDTIME;
         objTemp.FINISHTIME = obj.FINISHTIME;
         objTemp.REPORTTIME = obj.REPORTTIME;
         objTemp.EDITTIME = DateTime.Now;
         obj.EDITUSER = _ses.loginCode;
         ret = bus.update(objTemp);
     }
     bus.CloseConnection();
     return ret;
 }
        /// <summary>
        /// thêm dữ liệu vào bảng examhallstudent :
        /// </summary>
        /// <param name="listStudentCode"></param>
        /// <param name="examTimeCode"></param>
        /// <param name="courseCode"></param>
        /// <param name="parentCode"></param>
        /// <returns></returns>

        public JsonResult Insert(List<string> listStudentCode, string examTimeCode, string courseCode)
        {
            int ret = 0;
            if (listStudentCode != null)
            {
                EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
                foreach (var studentCode in listStudentCode)
                {
                    MARK_BUS markBus = new MARK_BUS();
                    MARK_OBJ markObj = markBus.GetByKey(
                        new fieldpara("STUDENTCODE", studentCode, 0),
                        new fieldpara("COURSECODE", courseCode, 0),
                        new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)
                     );
                    if (markObj == null)
                        ret = -1;
                    else
                    {
                        // kiểm tra đã tồn tại bản ghi có markcode và coursecode truyền vào chưa
                        EXAMHALLSTUDENT_OBJ obj = bus.GetByKey(
                                        new fieldpara("MARKCODE", markObj.CODE, 0),
                                        new fieldpara("COURSECODE", courseCode, 0),
                                        new fieldpara("EXAMTIMECODE", examTimeCode, 0),
                                        new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)
                        );
                        if (obj != null)
                        {
                            ret = -2;
                            return Json(new { ret }, JsonRequestBehavior.AllowGet);
                        }
                        EXAMHALLSTUDENT_OBJ objTemp = new EXAMHALLSTUDENT_OBJ();
                        objTemp.CODE = bus.genNextCode(objTemp);
                        objTemp.MARKCODE = markObj.CODE;
                        objTemp.COURSECODE = courseCode;
                        objTemp.EXAMTIMECODE = examTimeCode;
                        objTemp.LOCK = 0;
                        objTemp.EDITTIME = DateTime.Now;
                        objTemp.EDITUSER = _ses.loginCode;
                        objTemp.UNIVERSITYCODE = _ses.gUNIVERSITYCODE;
                        ret = bus.insert(objTemp);
                    }
                    markBus.CloseConnection();
                }
                bus.CloseConnection();
            }
            return Json(new { ret }, JsonRequestBehavior.AllowGet);
        }
        /// <summary>
        /// xóa danh sách sinh viên trong đợt thi
        /// </summary>
        /// <param name="listCode"></param>
        /// <returns></returns>
        public JsonResult Delete(List<string> listCode)
        {
            var ret = 0;
            EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
            List<EXAMHALLSTUDENT_OBJ.BusinessObjectID> deletedata = new List<EXAMHALLSTUDENT_OBJ.BusinessObjectID>();
            foreach (var code in listCode)
            {
                var item = bus.GetByID(new EXAMHALLSTUDENT_OBJ.BusinessObjectID(code));
                if (item != null)
                {
                    deletedata.Add(item._ID);
                }
            }
            if (deletedata.Count > 0)
            {
                //mặc định khi vào danh sách này là xóa thành công nên ret= 1;
                //duyệt toàn bộ danh sách bản ghi để xóa
                bus.BeginTransaction();
                ret = bus.DeletetMultiItems(deletedata);
                if (ret < 0)
                {
                    //Trong trường hợp nhiều thao tác, có một thao tác không thành công,
                    //hàm này được gọi để quay lại trạng thái trước khi thực hiện (bắt đầu từ khi gọi BeginTransaction()
                    bus.RollbackTransaction();
                }
                else
                {
                    //Sau khi thao tác dữ liệu thành công, hàm này được gọi để thực hiện ghi vào cơ sở dữ liệu
                    bus.CommitTransaction();
                }
            }
            bus.CloseConnection();

            return Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet);
        }
Exemple #4
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);
        }
        /// <summary>
        /// khi update bản ghi: hàm này được gọi trong hàm update
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public ArrayList UpdateExamHall(EXAMHALL_OBJ obj)
        {
            ArrayList    arrList = new ArrayList();
            EXAMHALL_BUS bus     = new EXAMHALL_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 EXAMHALL_OBJ.BusinessObjectID(obj.CODE)) : new EXAMHALL_OBJ();

            if (ret < 0)
            {
                //đóng kết nối trước khi trả về
                bus.CloseConnection();
                //ban ghi sửa đã bị xóa
                return(arrList);
            }
            //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.NOTE     = obj.NOTE;
            objTemp.LOCK     = obj.LOCK;
            //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.CODEVIEW = objTemp.CODE;
                objTemp.LOCKDATE = DateTime.Now;
            }
            objTemp.EXAMTIMECODE      = obj.EXAMTIMECODE;
            objTemp.BAGGROUP          = obj.BAGGROUP;
            objTemp.HALLNUMBER        = obj.HALLNUMBER;
            objTemp.MAXSTUDENT        = obj.MAXSTUDENT;
            objTemp.STUDENTAMOUNT     = obj.STUDENTAMOUNT;
            objTemp.EXAMSTUDENTAMOUNT = obj.EXAMSTUDENTAMOUNT;
            objTemp.PAPERAMOUNT       = obj.PAPERAMOUNT;
            objTemp.BEGINTIME         = obj.BEGINTIME;
            objTemp.ENDTIME           = obj.ENDTIME;
            objTemp.UNIVERSITYCODE    = _ses.gUNIVERSITYCODE;
            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)
                {
                    // update lại realbegintime và realendtime cho các sinh viên trong phòng này
                    EXAMHALLSTUDENT_BUS stdBus = new EXAMHALLSTUDENT_BUS();
                    var examHallStd            = stdBus.getAllBy2("CODE", new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0),
                                                                  new fieldpara("EXAMHALLCODE", objTemp.CODE, 0));
                    if (examHallStd != null)
                    {
                        foreach (var item in examHallStd)
                        {
                            item.REALBEGINTIME = objTemp.BEGINTIME;
                            item.REALENDTIME   = objTemp.ENDTIME;
                            item.FINALENDTIME  = objTemp.ENDTIME;

                            ret = new ExamHallStudentController().Update(item);
                        }
                    }
                    stdBus.CloseConnection();
                }
            }
            int pagecount   = 0;
            int currentpage = 0;

            if (ret >= 0)
            {
                List <fieldpara> lipa = new List <fieldpara> {
                    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();
            arrList.Add(objTemp.CODE);
            arrList.Add(ret);
            arrList.Add(pagecount);
            arrList.Add(currentpage);
            return(arrList);
        }
 /// <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;
 }
Exemple #7
0
        /// <summary>
        /// xóa sinh viên của lớp môn học
        /// cho phep xoa hay khong
        /// ret= -2 ;//sử dụng trong trường hợp xóa đơn một bản ghi có tham chiếu
        /// ret= 0 : không có gì để xóa
        /// ans = 1: //xóa thành công
        /// ret= -3 : Bản ghi hiện tại không còn trong hệ thống, truy cập trái phép
        /// </summary>
        /// <param name="listStudentCode">danh sách mã sinh viên</param>
        /// <param name="coursecode">mã lớp môn học</param>
        /// <returns></returns>
        public JsonResult DeleteStudentCourse(List <string> listStudentCode, string coursecode)
        {
            int ret = 0;
            EXAMHALLSTUDENT_BUS busExam = new EXAMHALLSTUDENT_BUS();
            List <fieldpara>    lipa    = new List <fieldpara>();
            MARK_BUS            busMark = new MARK_BUS();
            List <MARK_OBJ.BusinessObjectID> deleteListId = new List <MARK_OBJ.BusinessObjectID>();

            //kiểm tra tất cả các item đưa vào xem có con hay không
            foreach (var item in listStudentCode)
            {
                var mark = busMark.GetByID(new MARK_OBJ.BusinessObjectID(item));
                //check xem subject có còn tồn tại trong hệ thống hay không
                if (mark == null)
                {
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                // ** chú ý: nếu muốn xóa nhiều bản ghi thì cần phải clear lipa trước khi sử dụng nó lại
                lipa.Clear();
                lipa.Add(new fieldpara("MARKCODE", item, 0));
                lipa.Add(new fieldpara("COURSECODE", coursecode, 0));
                lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                //checkcode sẽ trả về là 0 nếu không có con
                // nhiều hơn 0 tức là tồn tại bản ghi con
                // nhỏ hơn 0 tức là lỗi hệ thống
                var exams = busExam.checkCode(null, lipa.ToArray());
                //nếu không có con thì cho vào danh sách xóa
                //tức là checkcode sẽ trả về là số lượng bản ghi con phụ thuộc
                //bad request
                if (exams < 0)
                {   //nếu mà gặp lỗi thì thoát luôn không cần xóa gì nữa
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                if (exams == 0)
                {
                    //add to delete list
                    deleteListId.Add(mark._ID);
                }
            }
            //nếu phần tử nằm trong danh sách xóa có thì sẽ phải xóa
            //xóa 1 bản ghi và trong trường hợp muốn xóa đơn lẻ mà bản ghi đưa vào không tồn tại con
            ////có 1 bản ghi và bản ghi đó không được phép xóa
            if (listStudentCode.Count == 1 && deleteListId.Count < 1)
            {
                //không cho xóa 1 bản ghi
                ret = -2;
            }

            //còn đây là trường hợp xóa nhiều, cứ thông báo là xóa thành công là xong
            //mặc dù còn có các bản ghi không được xóa còn có tham chiếu nhưng không nên thông báo quá chi tiết
            if (deleteListId.Count >= 1)
            {
                //mặc định khi vào danh sách này là xóa thành công nên ret= 1;
                //duyệt toàn bộ danh sách bản ghi để xóa
                busMark.BeginTransaction();
                ret = busMark.DeletetMultiItems(deleteListId);
                if (ret < 0)
                {
                    //Trong trường hợp nhiều thao tác, có một thao tác không thành công,
                    //hàm này được gọi để quay lại trạng thái trước khi thực hiện (bắt đầu từ khi gọi BeginTransaction()
                    busMark.RollbackTransaction();
                }
                else
                {
                    //Sau khi thao tác dữ liệu thành công, hàm này được gọi để thực hiện ghi vào cơ sở dữ liệu
                    busMark.CommitTransaction();
                }
            }
            //close all connection

            busExam.CloseConnection();
            busMark.CloseConnection();
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }