コード例 #1
0
        public Task <Role> FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(normalizedRoleName))
            {
                throw new ArgumentNullException(nameof(normalizedRoleName), "Parameter normalizedRoleName cannot be null or empty.");
            }

            cancellationToken.ThrowIfCancellationRequested();
            return(_rolesRepository.FindByNameAsync(normalizedRoleName));
        }
コード例 #2
0
        public static async Task <bool> IsInRoleAsync(this IUsersRolesRepository usersRoles, Guid userId,
                                                      string roleName, IRolesRepository roles,
                                                      CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();
            var role = await roles.FindByNameAsync(roleName, false, cancellationToken);

            if (role is null)
            {
                return(false);
            }
            return(await usersRoles.FindUserRoleAsync(userId, role.Id, cancellationToken) is not null);
        }
コード例 #3
0
        public static async Task <IReadOnlyCollection <User> > GetUsersInRoleAsync(this IUsersRolesRepository usersRoles,
                                                                                   string roleName, IRolesRepository roles, IUsersRepository users,
                                                                                   CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();
            var role = await roles.FindByNameAsync(roleName, false, cancellationToken);

            var userIdCollection = (await
                                    usersRoles.ProcessQueryAsync(usersRoles.AsQueryable().Where(x => x.RoleId == role.Id),
                                                                 cancellationToken)).Select(x => x.UserId);

            return(await users.ProcessQueryAsync(users.AsQueryable().Where(
                                                     user => userIdCollection.Contains(user.Id)), cancellationToken));
        }
コード例 #4
0
 public async Task <Role> FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken)
 {
     return(await _roles.FindByNameAsync(normalizedRoleName, true, cancellationToken));
 }
コード例 #5
0
 protected override async Task <Role> FindRoleAsync(string normalizedRoleName,
                                                    CancellationToken cancellationToken)
 {
     cancellationToken.ThrowIfCancellationRequested();
     return(await _roles.FindByNameAsync(normalizedRoleName, true, cancellationToken));
 }