private void btnDongY_Click(object sender, EventArgs e) { switch (hd) { case 1: { if (CheckRetyePass()) { if (MessageBox.Show("Bạn muốn người dùng" + LayUser().USERID.ToString(), "Thêm chức vụ", MessageBoxButtons.OKCancel) == DialogResult.OK) { DTO.DTOtblUSER _User = LayUser(); busUser = new BUS.BUStblUSER(); busUser.ThemtblUSER(_User); foreach (var a in LayGroupUser()) { busGroupUser = new BUS.BUStblGROUPUSER(); busGroupUser.ThemtblGROUPUSER(a); } //_cdGroupUser.Version += 1; //checkdata.CapnhatCheckData(_cdGroupUser); txtPass.Text = ""; cmbMaNV.Enabled = false; txtPass.Enabled = false; txtRetype.Enabled = false; btnDongY.Visible = false; btnHuy.Visible = false; btnThem.Visible = true; btnSua.Visible = true; btnXoa.Visible = true; clbGroup.Enabled = false; hd = 0; LoadUser(); grdvUser.FocusedRowHandle = grdvUser.RowCount - 1; } } else MessageBox.Show("Kiểm tra lại mật khẩu.", "Lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error); }; break; case 2: { //try { string _strThongBao = string.Format("Bạn muốn xóa người dùng {0} - {1}?\nViệc xóa này sẽ xóa đi tất cả các quyền mà người này đang giữ!", cmbMaNV.Text, grdvUser.GetRowCellValue(grdvUser.FocusedRowHandle, colName)); if (MessageBox.Show(_strThongBao, "Chú ý!", MessageBoxButtons.YesNo) == DialogResult.Yes) { busUser = new BUS.BUStblUSER(); busUser.XoatblUSER(int.Parse(cmbMaNV.Text)); cmbMaNV.Enabled = false; txtPass.Enabled = false; txtRetype.Enabled = false; btnDongY.Visible = false; btnHuy.Visible = false; btnThem.Visible = true; btnSua.Visible = true; btnXoa.Visible = true; hd = 0; LoadUser(); } } //catch //{ // MessageBox.Show("Hiện đang có nhân viên thuộc lại nhân viên này"); //} }; break; case 3: { string _strThongBao = string.Format("Bạn muốn cập nhật người dùng {0} - {1}?", cmbMaNV.Text, grdvUser.GetRowCellValue(grdvUser.FocusedRowHandle, colName)); if (MessageBox.Show(_strThongBao, "Chú ý!", MessageBoxButtons.YesNo) == DialogResult.Yes) { UpdateUser(); //txtPass.Text = ""; cmbMaNV.Enabled = false; txtPass.Enabled = false; txtRetype.Enabled = false; btnDongY.Visible = false; btnHuy.Visible = false; btnThem.Visible = true; btnSua.Visible = true; btnXoa.Visible = true; clbGroup.Enabled = false; hd = 0; LoadUser(); } }; break; } }
private void UpdateUser() { int _UserID = int.Parse(cmbMaNV.Text); var _oldGroup = GetGroupByUserID((int)grdvUser.GetRowCellValue(grdvUser.FocusedRowHandle, colUserID)); var _newGroup = LayGroupUser(); #region Insert - Remove group //var _themGroup = _newGroup.Concat(_oldGroup).GroupBy(a => a.GROUPID,(key, group) =>group.First()); //var _xoaGroup = _newGroup.Concat(_oldGroup).GroupBy(a => a.GROUPID,(key, group) =>group.First()); //foreach (var _s1 in _oldGroup.ToList()) //{ // _themGroup.ToList().RemoveAll(a => a.GROUPID == _s1.GROUPID); // _themGroup.ToList().Remove(_s1); //} //for (int i = 0; i < _oldGroup.ToList().Count; i++) //{ // _themGroup.ToList().Remove(_oldGroup.ToList()[i]); // _themGroup.ToList().RemoveAll(a=>a.GROUPID==_oldGroup[i].GROUPID); //} //foreach (var _s2 in _newGroup) //{ // _xoaGroup.ToList().RemoveAll(a=>a.GROUPID==_s2.GROUPID); //} #endregion if (CheckRetyePass()) { if (Encrypt_Decrypt.Decrypt(busUser.LayTheoMatblUSER(_UserID).ToList()[0].PASSWORDS,true) == txtPass.Text.Trim()) { foreach (var _b in _oldGroup) { busGroupUser = new BUS.BUStblGROUPUSER(); busGroupUser.XoatblGROUPUSER(_UserID, _b.GROUPID); } foreach (var _a in _newGroup) { busGroupUser = new BUS.BUStblGROUPUSER(); var _dtoGroupUser = new DTO.DTOtblGROUPUSER(); _dtoGroupUser.GROUPID = _a.GROUPID; _dtoGroupUser.USERID = _UserID; busGroupUser.ThemtblGROUPUSER(_dtoGroupUser); } } else //Cập nhật password nếu thay đổi { string _strTB = "Mật khẩu không giống với mật khẩu cũ.\nNếu tiếp tục bạn sẽ đổi mật khẩu của người dùng này\n Bạn muốn tiếp tục chứ?"; if (MessageBox.Show(_strTB, "Lưu ý!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { foreach (var _b in _oldGroup) { busGroupUser = new BUS.BUStblGROUPUSER(); busGroupUser.XoatblGROUPUSER(_UserID, _b.GROUPID); } foreach (var _a in _newGroup) { busGroupUser = new BUS.BUStblGROUPUSER(); var _dtoGroupUser = new DTO.DTOtblGROUPUSER(); _dtoGroupUser.GROUPID = _a.GROUPID; _dtoGroupUser.USERID = _UserID; busGroupUser.ThemtblGROUPUSER(_dtoGroupUser); } busUser = new BUS.BUStblUSER(); var _dtoUser = new DTO.DTOtblUSER(); _dtoUser.USERID = _UserID; _dtoUser.PASSWORDS = Encrypt_Decrypt.Encrypt(txtPass.Text, true); ; _dtoUser.LASTCHANGEDPASS = DateTime.Now; _dtoUser.LASTLOGIN = busUser.LayTheoMatblUSER(_UserID)[0].LASTLOGIN; busUser.CapnhattblUSER(_dtoUser); } } } else MessageBox.Show("Kiểm tra lại mật khẩu.", "Lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Warning); grdvUser.FocusedRowHandle = grdvUser.RowCount-1; }
//lấy quyền sử dụng các control trong từng module cho người dùng, bao gồm cả việc ng sd thuộc nhiều nhóm sử dụng private void GetFunctionOfGroupsByUserID(int _userID) { busGroupUser = new BUS.BUStblGROUPUSER(); var _GroupUser = busGroupUser.LayTatCatblGROUPUSER().Where(a => a.USERID == _userID); List<DTO.DTOtblGROUP_FUNCTION> _lstGroupFunction = new List<DTO.DTOtblGROUP_FUNCTION>(); foreach (var a in _GroupUser) { busGroupFunction = new BUS.BUStblGROUP_FUNCTION(); var _lstFunc = busGroupFunction.LayTatCatblGROUP_FUNCTION().Where(p => p.GROUPID == a.GROUPID).ToList(); foreach (var b in _lstFunc) { _lstGroupFunction.Add(b); } } //var _IsUsedFunc= _lstGroupFunction.GroupBy(a => a.FUNCTIONID).ToList(); var _IsUsedFunc = _lstGroupFunction.Where(a => a.VALUE == true).GroupBy(a => a.FUNCTIONID, (key, group) => group.First()).ToList(); foreach (var a in _IsUsedFunc) { switch (a.FUNCTIONID) { #region cấp quyền sử dụng các chức năng case 1: Function.DatPhong.Nhan = true; break; case 2: Function.DatPhong.DK = true; break; case 3: Function.DatPhong.Sua = true; break; case 4: Function.DatPhong.Xoa = true; break; case 5: Function.DSPhong.Them = true; break; case 6: Function.DSPhong.Sua = true; break; case 7: Function.DSPhong.Xoa = true; break; case 8: Function.KP_LP.ThemLP = true; break; case 9: Function.KP_LP.SuaLP = true; break; case 10: Function.KP_LP.XoaLP = true; break; case 11: Function.KP_LP.ThemKP = true; break; case 12: Function.KP_LP.SuaKP = true; break; case 13: Function.KP_LP.XoaKP = true; break; case 14: Function.Gia.CapNhat = true; break; case 15: Function.ThanhToan.TinhTien = true; break; case 16: Function.HoaDon.XoaHD = true; break; case 17: Function.PT_CK.ThemPT = true; break; case 18: Function.PT_CK.SuaPT = true; break; case 19: Function.PT_CK.XoaPT = true; break; case 20: Function.PT_CK.ThemCK = true; break; case 21: Function.PT_CK.SuaCK = true; break; case 22: Function.PT_CK.XoaCK = true; break; case 23: Function.KhachHang.ThemKH = true; break; case 24: Function.KhachHang.SuaKH = true; break; case 25: Function.KhachHang.XoaKH = true; break; case 26: Function.KhachHang.ThemLKH = true; break; case 27: Function.KhachHang.SuaLKH = true; break; case 28: Function.KhachHang.XoaLKH = true; break; case 29: Function.NhanVien.ThemNV = true; break; case 30: Function.NhanVien.SuaTTNV = true; break; case 31: Function.NhanVien.Xoa = true; break; case 32: Function.ChucVu.Them = true; break; case 33: Function.ChucVu.Sua = true; break; case 34: Function.ChucVu.Xoa = true; break; case 35: Function.DichVu.Them = true; break; case 36: Function.DichVu.Sua = true; break; case 37: Function.DichVu.Xoa = true; break; case 38: Function.DichVu.ThemDV = true; break; case 39: Function.ThietBi.Them = true; break; case 40: Function.ThietBi.Sua = true; break; case 41: Function.ThietBi.Xoa = true; break; case 42: Function.ThietBi.ThemTB = true; break; case 43: Function.User.Them = true; break; case 44: Function.User.Sua = true; break; case 45: Function.User.Xoa = true; break; case 46: Function.Group.Them = true; break; case 47: Function.Group.Sua = true; break; case 48: Function.Group.Xoa = true; break; case 49: Function.BaoCao.Phong = true; break; case 50: Function.BaoCao.Thue_DatPhong = true; break; case 51: Function.BaoCao.DoanhThu = true; break; case 52: Function.BaoCao.DichVu = true; break; case 53: Function.BaoCao.ThietBi = true; break; case 54: Function.BaoCao.KhachHang = true; break; case 55: Function.BaoCao.NhanVien = true; break; case 56: Function.KP_LP.ThemTT = true; break; case 57: Function.KP_LP.SuaTT = true; break; case 58: Function.KP_LP.XoaTT = true; break; #endregion } } }
private void LoadUser() { busGroup = new BUS.BUStblGROUP(); busGroupUser = new BUS.BUStblGROUPUSER(); busNhanVien = new BUS.BUSNHANVIEN(); busUser = new BUS.BUStblUSER(); busChucVu = new BUS.BUSCHUCVU(); var _User = from a in busNhanVien.LayTatCaNHANVIEN() join b in busUser.LayTatCatblUSER() on a.MANV equals b.USERID //join c in busGroupUser.LayTatCatblGROUPUSER() on b.USERID equals c.USERID //join d in busGroup.LayTatCatblGROUP() on c.GROUPID equals d.GROUPID join e in busChucVu.LayTatCaCHUCVU() on a.MACV equals e.MACV select new { HoTen = a.TENNV, UserID = b.USERID, Password = b.PASSWORDS, ChucVu = e.TENCV, //Group = d.GROUPNAME, LastLogin = b.LASTLOGIN, LastPassChanged = b.LASTCHANGEDPASS, //GroupID = d.GROUPID }; grdUser.DataSource = _User.ToList(); grdvUser.MoveFirst(); //Binding(); }
//lấy quyền sử dụng các control trong từng module cho người dùng, bao gồm cả việc ng sd thuộc nhiều nhóm sử dụng private void GetModuleOfGroupsByUserID(int _userID) { busGroupUser = new BUS.BUStblGROUPUSER(); var _GroupUser = busGroupUser.LayTatCatblGROUPUSER().Where(a => a.USERID == _userID); List<DTO.DTOtblGROUPMODULE> _lstGroupModule = new List<DTO.DTOtblGROUPMODULE>(); foreach (var a in _GroupUser) { busGroupModule = new BUS.BUStblGROUPMODULE(); var _lstModule = busGroupModule.LayTatCatblGROUPMODULE().Where(p => p.GROUPID == a.GROUPID).ToList(); foreach (var b in _lstModule) { _lstGroupModule.Add(b); } } //var _IsUsedFunc= _lstGroupFunction.GroupBy(a => a.FUNCTIONID).ToList(); var _IsUsedModule = _lstGroupModule.Where(a => a.VALUE == true).GroupBy(a => a.MODULEID, (key, group) => group.First()).ToList(); foreach (var a in _IsUsedModule) { switch (a.MODULEID) { #region cấp quyền sử dụng các chức năng case 1: Modules.Modules.DatPhong = BarItemVisibility.Always; break; case 2: Modules.Modules.DSPhong = BarItemVisibility.Always; break; case 3: Modules.Modules.KP_LP = BarItemVisibility.Always; break; case 4: Modules.Modules.Gia = BarItemVisibility.Always; break; case 5: Modules.Modules.TinhTien = BarItemVisibility.Always; break; case 6: Modules.Modules.HoaDon = BarItemVisibility.Always; break; case 7: Modules.Modules.PT_CK = BarItemVisibility.Always; break; case 8: Modules.Modules.KhachHang = BarItemVisibility.Always; break; case 9: Modules.Modules.NhanVien = BarItemVisibility.Always; break; case 10: Modules.Modules.ChucVu= BarItemVisibility.Always; break; case 11: Modules.Modules.DichVu = BarItemVisibility.Always; break; case 12: Modules.Modules.ThietBi= BarItemVisibility.Always; break; case 13: Modules.Modules.QLUsers = BarItemVisibility.Always; break; case 14: Modules.Modules.QLGroups = BarItemVisibility.Always; break; case 15: Modules.Modules.BaoCao = BarItemVisibility.Always; break; #endregion } } }