Esempio n. 1
0
        public bool Sua(HT_CNANG_PQUYEN obj)
        {
            bool      kq       = true;
            Entities  entities = ContextFactory.GetInstance();
            EntityKey key      = null;
            object    original = null;

            try
            {
                key = entities.CreateEntityKey(ENTITY_SET_NAME, obj);
                if (entities.TryGetObjectByKey(key, out original))
                {
                    entities.ApplyCurrentValues(key.EntitySetName, obj);
                }
                entities.SaveChanges();
                kq = true;
            }
            catch (System.Exception ex)
            {
                kq = false;
                LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex);
                throw ex;
            }
            finally
            {
                entities = null;
            }
            return(kq);
        }
Esempio n. 2
0
        public HT_CNANG_PQUYEN GetById(int id)
        {
            HT_CNANG_PQUYEN kq       = null;
            Entities        entities = ContextFactory.GetInstance();

            try
            {
                kq = entities.HT_CNANG_PQUYEN.FirstOrDefault(e => e.ID == id);
                return(kq);
            }
            catch (System.Exception ex)
            {
                kq = null;
                LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex);
                throw ex;
            }
            finally
            {
                entities = null;
            }
        }
Esempio n. 3
0
        public bool Them(HT_CNANG_PQUYEN obj)
        {
            bool     kq       = true;
            Entities entities = ContextFactory.GetInstance();

            try
            {
                entities.HT_CNANG_PQUYEN.AddObject(obj);
                entities.SaveChanges();
            }
            catch (System.Exception ex)
            {
                kq = false;
                LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex);
                throw ex;
            }
            finally
            {
                entities = null;
            }
            return(kq);
        }
Esempio n. 4
0
        public bool luuPhanQuyen(string maDoiTuong, string loaiDoiTuong, ArrayList lstPhanQuyen, string nguoiCapNhat)
        {
            try
            {
                using (TransactionScope trans = new TransactionScope())
                {
                    Entities      entities      = ContextFactory.GetInstance();
                    List <string> lstMaCNang    = new List <string>();
                    string        taiNguyenMenu = BusinessConstant.LoaiTaiNguyen.MENU.layGiaTri();
                    foreach (List <string> lst in lstPhanQuyen)
                    {
                        // Xóa hết phân quyền cũ
                        foreach (string tn in lst)
                        {
                            HT_TNGUYEN_KTHAC tnkt = entities.HT_TNGUYEN_KTHAC.FirstOrDefault(e => e.MA_DTUONG.Equals(maDoiTuong) && e.MA_DTUONG_LOAI.Equals(loaiDoiTuong) && e.MA_TNGUYEN.Equals(tn) && e.MA_TNGUYEN_LOAI.Equals(taiNguyenMenu));
                            if (tnkt != null)
                            {
                                entities.HT_TNGUYEN_KTHAC.DeleteObject(tnkt);
                                entities.SaveChanges();
                            }
                            if (lst.IndexOf(tn) > 0)
                            {
                                if (!lstMaCNang.Contains(tn))
                                {
                                    lstMaCNang.Add(tn);
                                }
                                // ID của tính năng được gán vào tham số Capacity khi khởi tạo list phía client
                                int            idTinhNang = Convert.ToInt32(lst.First());
                                HT_CNANG_TNANG cntn       = entities.HT_CNANG_TNANG.FirstOrDefault(e => e.MA_CNANG.Equals(tn) && e.ID_TNANG == idTinhNang);
                                // ID của tính năng được lưu trong trường GTRI_TNGUYEN
                                HT_CNANG_PQUYEN cnpq = entities.HT_CNANG_PQUYEN.FirstOrDefault(e => e.MA_DTUONG.Equals(maDoiTuong) && e.MA_DTUONG_LOAI.Equals(loaiDoiTuong) && e.ID_CNANG_TNANG == cntn.ID);
                                if (cnpq != null)
                                {
                                    entities.HT_CNANG_PQUYEN.DeleteObject(cnpq);
                                    entities.SaveChanges();
                                }
                            }
                        }
                        foreach (string tn in lst)
                        {
                            if (lst.IndexOf(tn) > 0)
                            {
                                HT_CNANG_PQUYEN obj = new HT_CNANG_PQUYEN();
                                // ID của tính năng được gán vào tham số Capacity khi khởi tạo list phía client
                                int            idTinhNang = Convert.ToInt32(lst.First());
                                HT_CNANG_TNANG cntn       = entities.HT_CNANG_TNANG.FirstOrDefault(e => e.MA_CNANG.Equals(tn) && e.ID_TNANG == idTinhNang);

                                obj.ID_CNANG_TNANG = cntn.ID;
                                if (loaiDoiTuong.Equals(BusinessConstant.LoaiDoiTuong.NGUOI_SDUNG.layGiaTri()))
                                {
                                    obj.ID_DTUONG = entities.HT_NSD.FirstOrDefault(e => e.MA_NSD.Equals(maDoiTuong)).ID;
                                }

                                if (loaiDoiTuong.Equals(BusinessConstant.LoaiDoiTuong.NHOM_NGUOI_SDUNG.layGiaTri()))
                                {
                                    obj.ID_DTUONG = entities.HT_NHNSD.FirstOrDefault(e => e.MA_NHNSD.Equals(maDoiTuong)).ID;
                                }

                                obj.MA_DTUONG      = maDoiTuong;
                                obj.MA_DTUONG_LOAI = loaiDoiTuong;
                                obj.MA_DVI_QLY     = entities.HT_NSD.FirstOrDefault(e => e.MA_DANG_NHAP.ToLower().Equals(nguoiCapNhat.ToLower())).MA_DVI_QLY;
                                obj.MA_DVI_TAO     = obj.MA_DVI_QLY;
                                obj.NGAY_CNHAT     = DateTime.Today.ToString("yyyyMMdd");
                                obj.NGAY_NHAP      = DateTime.Today.ToString("yyyyMMdd");
                                obj.NGUOI_CNHAT    = nguoiCapNhat;
                                obj.NGUOI_NHAP     = nguoiCapNhat;
                                obj.TTHAI_BGHI     = BusinessConstant.TrangThaiBanGhi.SU_DUNG.layGiaTri();
                                obj.TTHAI_NVU      = BusinessConstant.TrangThaiNghiepVu.DA_DUYET.layGiaTri();
                                entities.HT_CNANG_PQUYEN.AddObject(obj);
                                entities.SaveChanges();
                            }
                        }
                    }

                    // Tạo quyền mới
                    foreach (string maCNang in lstMaCNang)
                    {
                        HT_TNGUYEN_KTHAC obj = new HT_TNGUYEN_KTHAC();

                        HT_CNANG cn = entities.HT_CNANG.FirstOrDefault(e => e.MA_CNANG.Equals(maCNang));

                        obj.GTRI_TNGUYEN = cn.ID.ToString();
                        obj.ID_TNGUYEN   = cn.ID;
                        obj.MA_TNGUYEN   = cn.MA_CNANG;

                        obj.ID_TNGUYEN_CHA = cn.ID_CNANG_CHA;
                        if (cn.ID_CNANG_CHA != null)
                        {
                            obj.MA_TNGUYEN_CHA = entities.HT_CNANG.FirstOrDefault(e => e.ID == cn.ID_CNANG_CHA).MA_CNANG;
                        }

                        obj.TEN_TNGUYEN = cn.TEN_CNANG;
                        if (loaiDoiTuong.Equals(BusinessConstant.LoaiDoiTuong.NGUOI_SDUNG.layGiaTri()))
                        {
                            obj.ID_DTUONG = entities.HT_NSD.FirstOrDefault(e => e.MA_NSD.Equals(maDoiTuong)).ID;
                        }

                        if (loaiDoiTuong.Equals(BusinessConstant.LoaiDoiTuong.NHOM_NGUOI_SDUNG.layGiaTri()))
                        {
                            obj.ID_DTUONG = entities.HT_NHNSD.FirstOrDefault(e => e.MA_NHNSD.Equals(maDoiTuong)).ID;
                        }

                        obj.ID_TNGUYEN_LOAI = entities.HT_TNGUYEN_LOAI.FirstOrDefault(e => e.MA_TNGUYEN_LOAI.Equals(taiNguyenMenu)).ID;
                        obj.MA_DTUONG       = maDoiTuong;
                        obj.MA_DTUONG_LOAI  = loaiDoiTuong;
                        obj.KIEU_DLIEU      = "String";
                        obj.MA_DVI_QLY      = entities.DM_DON_VI.First().MA_DVI;
                        obj.MA_DVI_TAO      = obj.MA_DVI_QLY;
                        obj.MA_TNGUYEN_LOAI = BusinessConstant.LoaiTaiNguyen.MENU.layGiaTri();
                        obj.NGAY_CNHAT      = DateTime.Today.ToString("yyyyMMdd");
                        obj.NGAY_NHAP       = DateTime.Today.ToString("yyyyMMdd");
                        obj.NGUOI_CNHAT     = nguoiCapNhat;
                        obj.NGUOI_NHAP      = nguoiCapNhat;
                        obj.TTHAI_BGHI      = BusinessConstant.TrangThaiBanGhi.SU_DUNG.layGiaTri();
                        obj.TTHAI_NVU       = BusinessConstant.TrangThaiNghiepVu.DA_DUYET.layGiaTri();
                        entities.HT_TNGUYEN_KTHAC.AddObject(obj);
                        entities.SaveChanges();

                        if (cn.ID_CNANG_CHA != null)
                        {
                            InsertParrentTNKT(cn.ID_CNANG_CHA.Value, maDoiTuong, obj.ID_DTUONG, loaiDoiTuong, nguoiCapNhat);
                        }
                    }
                    trans.Complete();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex);
                throw ex;
            }
        }
Esempio n. 5
0
        public ApplicationConstant.ResponseStatus luuPhanQuyenChucNang(
            string loaiDoiTuong,
            int idDoiTuong,
            string maDoiTuong,
            string maDonVi,
            string nguoiCapNhat,
            string ngayCapNhat,
            List <HT_CNANG_PQUYEN> dsCNangPQuyenXoa,
            List <HT_CNANG_TNANG> dsCNangTNangThem,
            ref ApplicationConstant.QuanTriHeThongResponseMessage responseMessage,
            ref BS_ResponseDetail bsRetDetail
            )
        {
            bool kq = true;

            try
            {
                using (TransactionScope trans = new TransactionScope())
                {
                    DS_HT_CNANG_PQUYEN  dsHtCNangPQuyen  = new DS_HT_CNANG_PQUYEN();
                    DS_HT_TNGUYEN_KTHAC dsHtTNguyenKThac = new DS_HT_TNGUYEN_KTHAC();
                    DS_HT_MENU          dsHtMenu         = new DS_HT_MENU();

                    // Xóa các dữ liệu phân quyền bị xóa
                    foreach (HT_CNANG_PQUYEN item in dsCNangPQuyenXoa)
                    {
                        HT_CNANG_PQUYEN obj = dsHtCNangPQuyen.GetById(item.ID);
                        kq = dsHtCNangPQuyen.Xoa(obj);
                        if (!kq)
                        {
                            break;
                        }
                    }

                    // Thêm các dữ liệu phân quyền mới
                    if (kq)
                    {
                        foreach (HT_CNANG_TNANG item in dsCNangTNangThem)
                        {
                            HT_CNANG_PQUYEN htCNangPQuyen = new HT_CNANG_PQUYEN();
                            htCNangPQuyen.ID_DTUONG_LOAI = null;
                            htCNangPQuyen.MA_DTUONG_LOAI = loaiDoiTuong;
                            htCNangPQuyen.ID_DTUONG      = idDoiTuong;
                            htCNangPQuyen.MA_DTUONG      = maDoiTuong;
                            htCNangPQuyen.ID_CNANG_TNANG = item.ID;
                            htCNangPQuyen.TTHAI_BGHI     = BusinessConstant.TrangThaiBanGhi.SU_DUNG.layGiaTri();
                            htCNangPQuyen.TTHAI_NVU      = BusinessConstant.TrangThaiNghiepVu.DA_DUYET.layGiaTri();
                            htCNangPQuyen.MA_DVI_QLY     = maDonVi;
                            htCNangPQuyen.MA_DVI_TAO     = maDonVi;
                            htCNangPQuyen.NGAY_NHAP      = ngayCapNhat;
                            htCNangPQuyen.NGUOI_NHAP     = nguoiCapNhat;
                            htCNangPQuyen.NGAY_CNHAT     = ngayCapNhat;
                            htCNangPQuyen.NGUOI_CNHAT    = nguoiCapNhat;

                            kq = dsHtCNangPQuyen.Them(htCNangPQuyen);

                            if (!kq)
                            {
                                break;
                            }
                        }
                    }

                    // Xóa tài nguyên khai thác cũ
                    if (kq)
                    {
                        //kq = dsHtTNguyenKThac.XoaTheoDoiTuong(idDoiTuong, maDoiTuong);
                        kq = dsHtTNguyenKThac.XoaTheoDoiTuong(idDoiTuong, maDoiTuong, loaiDoiTuong);
                    }

                    // Thêm tài nguyên khai thác mới dựa trên danh sách phân quyền mới
                    if (kq)
                    {
                        // Lấy danh sách phân quyền mới của đối tượng
                        List <HT_CNANG_PQUYEN> dsCNangPQuyen = layCNangPQuyenTheoDoiTuong(maDoiTuong, loaiDoiTuong);

                        // Xây dựng danh sách menu trên danh sách phân quyền mới
                        List <int>            lstIdCNangTNang = dsCNangPQuyen.Select(e => e.ID_CNANG_TNANG.Value).ToList();
                        List <HT_CNANG_TNANG> lstCNangTNang   = layCNangTNangTheoListIdCNangTNang(lstIdCNangTNang);
                        List <int>            lstIdCNang      = lstCNangTNang.Select(e => e.ID_CNANG).ToList();
                        List <HT_CNANG>       lstCNang        = layCNangTheoListIdChucNang(lstIdCNang);
                        List <HT_CNANG>       lstCNangChoMenu = new List <HT_CNANG>();
                        List <HT_MENU>        lstMenu         = new List <HT_MENU>();

                        foreach (HT_CNANG item in lstCNang)
                        {
                            DuyetPhanCapChucNang(item, ref lstCNangChoMenu);
                        }
                        List <int> lstIdCNangMenu = lstCNangChoMenu.Select(e => e.ID).ToList();
                        lstMenu = dsHtMenu.GetListByIdChucNang(lstIdCNangMenu);
                        foreach (HT_MENU item in lstMenu)
                        {
                            HT_TNGUYEN_KTHAC htTNguyenKThac = new HT_TNGUYEN_KTHAC();
                            htTNguyenKThac.ID_TNGUYEN_LOAI = 3;
                            htTNguyenKThac.MA_TNGUYEN_LOAI = BusinessConstant.LoaiTaiNguyen.MENU.layGiaTri();
                            htTNguyenKThac.ID_DTUONG_LOAI  = 0;
                            htTNguyenKThac.MA_DTUONG_LOAI  = loaiDoiTuong;
                            htTNguyenKThac.ID_DTUONG       = idDoiTuong;
                            htTNguyenKThac.MA_DTUONG       = maDoiTuong;
                            htTNguyenKThac.ID_TNGUYEN      = item.ID;
                            htTNguyenKThac.MA_TNGUYEN      = item.MA_MENU;
                            htTNguyenKThac.TEN_TNGUYEN     = item.TEN_MENU;
                            htTNguyenKThac.GTRI_TNGUYEN    = null;
                            htTNguyenKThac.ID_TNGUYEN_CHA  = item.ID_MENU_CHA;
                            htTNguyenKThac.KIEU_DLIEU      = "String";
                            htTNguyenKThac.NGUON_TAO_DL    = DatabaseConstant.NguonTaoDuLieu.NSD.layGiaTri();
                            htTNguyenKThac.TTHAI_BGHI      = BusinessConstant.TrangThaiBanGhi.SU_DUNG.layGiaTri();
                            htTNguyenKThac.TTHAI_NVU       = BusinessConstant.TrangThaiNghiepVu.DA_DUYET.layGiaTri();
                            htTNguyenKThac.MA_DVI_QLY      = maDonVi;
                            htTNguyenKThac.MA_DVI_TAO      = maDonVi;
                            htTNguyenKThac.NGAY_NHAP       = ngayCapNhat;
                            htTNguyenKThac.NGUOI_NHAP      = nguoiCapNhat;
                            htTNguyenKThac.NGAY_CNHAT      = ngayCapNhat;
                            htTNguyenKThac.NGUOI_CNHAT     = nguoiCapNhat;

                            kq = dsHtTNguyenKThac.Them(htTNguyenKThac);
                        }
                    }


                    if (kq)
                    {
                        trans.Complete();
                        responseMessage    = ApplicationConstant.QuanTriHeThongResponseMessage.M_ResponseMessage_QuanTriHeThong_ThanhCong;
                        bsRetDetail.Result = ApplicationConstant.OperationStatus.Successful.layNgonNgu();
                        bsRetDetail.Detail = responseMessage.layGiaTri();
                        return(ApplicationConstant.ResponseStatus.THANH_CONG);
                    }
                    else
                    {
                        responseMessage    = ApplicationConstant.QuanTriHeThongResponseMessage.M_ResponseMessage_QuanTriHeThong_KhongThanhCong;
                        bsRetDetail.Result = ApplicationConstant.OperationStatus.Failed.layNgonNgu();
                        bsRetDetail.Detail = responseMessage.layGiaTri();
                        return(ApplicationConstant.ResponseStatus.KHONG_THANH_CONG);
                    }
                }
            }
            catch (Exception ex)
            {
                responseMessage = ApplicationConstant.QuanTriHeThongResponseMessage.M_ResponseMessage_QuanTriHeThong_KhongThanhCong;

                bsRetDetail.Result = ApplicationConstant.OperationStatus.Failed.layNgonNgu();
                bsRetDetail.Detail = responseMessage.layGiaTri();

                LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex);
                throw ex;
            }
        }