public static bool UpdatePermissionToGroup(List <Guid> permissions, int groupId) { bool isSuccess = false; List <Guid> removalPermissions = new List <Guid>(); List <Guid> additionPermissions = new List <Guid>(); List <Guid> groupPermission = new List <Guid>(); Sys_QuyenTheoNhomRepository permissionRepository = new Sys_QuyenTheoNhomRepository(); List <Sys_QuyenTheoNhom> currentPermissions = permissionRepository.GetTable().Where(x => x.IDDanhMucNhom == groupId).ToList(); currentPermissions.ForEach(x => groupPermission.Add(x.RoleID)); removalPermissions = groupPermission.FindAll(x => !permissions.Contains(x)); additionPermissions = permissions.FindAll(x => !groupPermission.Contains(x)); try { foreach (Guid permission in additionPermissions) { Sys_QuyenTheoNhom g = new Sys_QuyenTheoNhom(); g.IDDanhMucNhom = groupId; g.MaNguoiTao = Guid.NewGuid(); g.MaNguoiThayDoi = Guid.NewGuid(); //g.ModifiedOn g.NgayTao = DateTime.Now; g.NgayThayDoi = DateTime.Now; g.RoleID = permission; permissionRepository.Add(g); } foreach (Guid permission in removalPermissions) { Sys_QuyenTheoNhom g = permissionRepository.GetTable().FirstOrDefault(x => x.RoleID == permission && x.IDDanhMucNhom == groupId); permissionRepository.Delete(g.ID); } permissionRepository.SubmitChanges(); isSuccess = true; } catch { } return(isSuccess); }
public static List <Role> GetPermisisonForGroup(int groupID) { List <Role> roles = new List <Role>(); List <Role> allRoles = GetAllRoles(); Sys_QuyenTheoNhomRepository permissionRepository = new Sys_QuyenTheoNhomRepository(); List <Sys_QuyenTheoNhom> permissions = permissionRepository.GetTable().Where(x => x.IDDanhMucNhom == groupID).ToList(); List <Guid> guids = new List <Guid>(); permissions.ForEach(x => guids.Add(x.RoleID)); allRoles.FindAll(x => guids.Contains(x.ID)).ForEach(x => x.IsGrant = true); return(allRoles); }