//It could be better to provide cache mechanism public bool IsGranted(int roleId, string permissionName) { var rolePermission = _rolePermissionRepository.FirstOrDefault(x => x.RoleId == roleId && x.PermissionName == permissionName); if (rolePermission != null) { return(rolePermission.IsGranted); } return(_permissionManager.GetPermission(permissionName).Default); }