public JsonResult Update(TESTSTRUCTCONTENT_OBJ obj)
        {
            TESTSTRUCTCONTENT_BUS bus = new TESTSTRUCTCONTENT_BUS();
            int ret = 0;
            int add = 0;
            TESTSTRUCTCONTENT_OBJ objTemp = null;

            //kiểm tra tồn tại cho trường hợp sửa
            if (!string.IsNullOrEmpty(obj.CODE))//edit
            {
                objTemp = bus.GetByID(new TESTSTRUCTCONTENT_OBJ.BusinessObjectID(obj.CODE));
            }
            else
            {
                objTemp = new TESTSTRUCTCONTENT_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.SUBJECTCODE    = obj.SUBJECTCODE;
            objTemp.TESTSTRUCTCODE = obj.TESTSTRUCTCODE;
            objTemp.PARENTCODE     = obj.PARENTCODE;
            objTemp.NOTE           = obj.NOTE;
            objTemp.LOCK           = obj.LOCK;
            objTemp.THEORDER       = obj.THEORDER;
            objTemp.TOTALTIME      = obj.TOTALTIME;
            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);
            }
            int pagecount   = 0;
            int currentpage = 0;

            if (ret >= 0)
            {
                List <fieldpara> lipa = new List <fieldpara>();
                lipa.Add(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();
            //some thing like that
            return(Json(new { obj = objTemp.CODE, ret = ret, pagecount = pagecount, currentpage = currentpage }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Delete(List <string> code)
        {
            var ret = 0;
            var bus = new TESTSTRUCTCONTENT_BUS();
            List <TESTSTRUCTCONTENT_OBJ.BusinessObjectID> deletedata = new List <TESTSTRUCTCONTENT_OBJ.BusinessObjectID>();
            List <fieldpara> lipa = new List <fieldpara>();

            if (code == null)
            {
                ret = -1;
            }
            else
            {
                foreach (string t in code)
                {
                    if (t != null)
                    {
                        var item = bus.GetByID(new TESTSTRUCTCONTENT_OBJ.BusinessObjectID(t));
                        if (item != null)
                        {
                            lipa.Clear();
                            lipa.Add(new fieldpara("PARENTCODE", t, 0));
                            lipa.Add(new fieldpara("UNIVERSITYCODE", ses.gUNIVERSITYCODE, 0));
                            ret = bus.checkCode(null, lipa.ToArray());
                            if (ret == 0)
                            {
                                deletedata.Add(item._ID);
                            }
                            else
                            {
                                ret = -3;
                                return(Json(new
                                {
                                    ret
                                }, JsonRequestBehavior.AllowGet));
                            }
                        }
                    }
                }
            }
            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));
        }