Example #1
0
        public JsonResult delete(List <string> listCode)
        {
            int         ret = 0;
            STUDENT_BUS bus = new STUDENT_BUS();

            foreach (var id in listCode)
            {
                STUDENT_OBJ obj = bus.GetByID(new STUDENT_OBJ.BusinessObjectID(id));
                //Kiểm tra đối tượng còn trên srrver hay không
                if (obj == null)
                {
                    ret = -1;
                }
                //Kiểm tra thuộc đơn vị triển khai
                if (obj.UNIVERSITYCODE != ses.gUNIVERSITYCODE)
                {
                    ret = -4;
                }
                if (ret >= 0)
                {
                    MARK_BUS busMark = new MARK_BUS();
                    //kiểm tra sinh viên có trong lớp môn học nào không
                    ret = busMark.checkCode(null, new fieldpara("STUDENTCODE", id));
                    busMark.CloseConnection();
                    //exist children
                    if (ret != 0)
                    {
                        ret = -2;
                    }
                }
                if (ret >= 0)
                {
                    //xóa
                    ret = bus.delete(obj._ID);
                }
            }

            //close connection
            bus.CloseConnection();
            return(Json(new { ret = ret }, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        /// <summary>
        /// xóa 1 couse , kiểm tra xem có các bản ghi con phụ thuộc hay không trước khi xóa
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>

        public JsonResult Delete(List <string> code)
        {
            //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
            //ret = 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
            COURSE_BUS       busCourse = new COURSE_BUS();
            List <fieldpara> lipa      = new List <fieldpara>();
            MARK_BUS         busMark   = new MARK_BUS();
            var ret = 0;
            List <COURSE_OBJ.BusinessObjectID> deleteList = new List <COURSE_OBJ.BusinessObjectID>();

            foreach (string item in code)
            {
                var course = busCourse.GetByID(new COURSE_OBJ.BusinessObjectID(item));
                //check xem course co ton tai ban ghi phu thuoc nao khong
                if (course == null)
                {
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                lipa.Clear();
                lipa.Add(new fieldpara("COURSECODE", item, 0));
                lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                //kiểm tra xem có bản ghi con hay không
                //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 marks = busMark.checkCode(null, lipa.ToArray());
                //cho phép xóa thì nhét vào list xóa không thì không cho phép xóa nhưng cũng không cần thông báo
                //vì có trường hợp xóa nhiều bản ghi và chỉ xóa 1 bản ghi nên cần xác định rõ trước khi xóa một bản ghi cha nào đó thì có tồn tại liên kết đến bản ghi con hay không
                //bad request
                if (marks < 0)
                {
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                //add to delete list
                if (marks == 0)
                {
                    deleteList.Add(course._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 có ràng buộc bản ghi con
            //có 1 bản ghi và bản ghi đó không được phép xóa
            if (code.Count == 1 && deleteList.Count < 1)
            {
                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 (deleteList.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
                busCourse.BeginTransaction();
                ret = busCourse.DeletetMultiItems(deleteList);
                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()
                    busCourse.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
                    busCourse.CommitTransaction();
                }
            }

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