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); }
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; } }
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); }
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; } }
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; } }