Пример #1
0
 public static async Task <Role> FindByNameAsync(this IRolesRepository roles, string roleName,
                                                 bool isNormalized = false,
                                                 CancellationToken cancellationToken = default)
 {
     cancellationToken.ThrowIfCancellationRequested();
     if (isNormalized)
     {
         return(await roles.ProcessFirstOrDefaultAsync(
                    roles.AsQueryable().Where(role => role.NormalizedName == roleName), cancellationToken));
     }
     return(await roles.ProcessFirstOrDefaultAsync(
                roles.AsQueryable().Where(role => role.Name == roleName), cancellationToken));
 }
        public static async Task <IReadOnlyCollection <Role> > GetRolesAsync(this IUsersRolesRepository usersRoles,
                                                                             Guid userId, IRolesRepository roles,
                                                                             CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();
            var roleIdCollection = (await
                                    usersRoles.ProcessQueryAsync(usersRoles.AsQueryable().Where(x => x.UserId == userId),
                                                                 cancellationToken)).Select(x => x.RoleId);

            return(await roles.ProcessQueryAsync(roles.AsQueryable().Where(
                                                     role => roleIdCollection.Contains(role.Id)), cancellationToken));
        }