Esempio n. 1
0
        /// <summary>
        /// multi delete, trước khi xóa một bản khi bất kì cần xác định được bản ghi có bản ghi con hay không
        /// giả sử trong list các bản ghi cần xóa có cả bản ghi cho phép xóa và không thì chỉ xóa những bản ghi được phép
        /// thông báo đã xóa chứ không thông báo chi tiết rằng bản ghi nào được và bản ghi nào không được xóa
        /// 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="code"></param>
        /// <returns></returns>
        public JsonResult Delete(List <string> code)
        {
            COURSE_BUS       courseBus  = new COURSE_BUS();
            List <fieldpara> lipa       = new List <fieldpara>();
            SUBJECT_BUS      subjectBus = new SUBJECT_BUS();
            var ret = 0;
            // danh sách bussinessID
            List <SUBJECT_OBJ.BusinessObjectID> deleteListId = new List <SUBJECT_OBJ.BusinessObjectID>();

            //kiểm tra tất cả các item đưa vào xem có con hay không
            foreach (var item in code)
            {
                var subject = subjectBus.GetByID(new SUBJECT_OBJ.BusinessObjectID(item));
                //check xem subject có còn tồn tại trong hệ thống hay không
                if (subject == 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("SUBJECTCODE", item, 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 courses = courseBus.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 (courses < 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 (courses == 0)
                {
                    //add to delete list
                    deleteListId.Add(subject._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 (code.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
                subjectBus.BeginTransaction();
                ret = subjectBus.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()
                    subjectBus.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
                    subjectBus.CommitTransaction();
                }
            }
            //close all connection
            courseBus.CloseConnection();
            subjectBus.CloseConnection();
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        /// <summary>
        /// update đối tượng môn học
        /// </summary>
        /// <param name="obj">đối tượng môn học đưa vào -subjectobj</param>
        /// <param name="educationlevelcode">mã đối tượng cấp trên -- đang mặc định là đại học DH</param>
        /// <returns></returns>
        public JsonResult Update(SUBJECT_OBJ obj, string educationlevelcode)
        {
            int ret;
            int add = 0;
            //if (_ses.isLogin() < 0)
            //{
            //    return Json(new { ret = -1 }, JsonRequestBehavior.AllowGet);
            //}

            SUBJECT_BUS bus = new SUBJECT_BUS();
            //kiểm tra tồn tại cho trường hợp sửa
            var objTemp = !string.IsNullOrEmpty(obj.CODE) ? bus.GetByID(new SUBJECT_OBJ.BusinessObjectID(obj.CODE)) : new SUBJECT_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.UNIVERSITYCODE     = _ses.gUNIVERSITYCODE;
            objTemp.NOTE               = obj.NOTE;
            objTemp.LOCK               = obj.LOCK;
            objTemp.LANG               = _ses.getLang();
            objTemp.EDUCATIONLEVELCODE = educationlevelcode ?? "DH";
            //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);
                //lock date =now
                objTemp.LOCKDATE = DateTime.Now;
            }
            //nếu là trường hợp thêm mới
            if (add == 1)
            {
                //thêm mới
                //dán ret là biến giá trị kiểm soát -1, 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>();
                //Lọc đơn vị cấp trên; '' sẽ là không co đơn vị cấp trên
                if (!string.IsNullOrEmpty(educationlevelcode))
                {
                    lipa.Add(new fieldpara("EDUCATIONLEVELCODE", educationlevelcode, 0));
                }
                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();
            //vì hiện tại chưa phân trang nên page count và currentpage để cho vui, sau tính
            return(Json(new { ret, pagecount, currentpage }, JsonRequestBehavior.AllowGet));
        }