You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExter...

50 lines
1.6 KiB

using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Users;
namespace Volo.Abp.Identity
{
public class IdentityUserRepositoryExternalUserLookupServiceProvider : IExternalUserLookupServiceProvider, ITransientDependency
{
private readonly IIdentityUserRepository _userRepository;
private readonly ILookupNormalizer _lookupNormalizer;
public IdentityUserRepositoryExternalUserLookupServiceProvider(
IIdentityUserRepository userRepository,
ILookupNormalizer lookupNormalizer)
{
_userRepository = userRepository;
_lookupNormalizer = lookupNormalizer;
}
public virtual async Task<IUserData> FindByIdAsync(
Guid id,
CancellationToken cancellationToken = default)
{
return (
await _userRepository.FindAsync(
id,
includeDetails: false,
cancellationToken: cancellationToken
)
.ConfigureAwait(false))?.ToAbpUserData();
}
public virtual async Task<IUserData> FindByUserNameAsync(
string userName,
CancellationToken cancellationToken = default)
{
return (
await _userRepository.FindByNormalizedUserNameAsync(
_lookupNormalizer.NormalizeName(userName),
includeDetails: false,
cancellationToken: cancellationToken
)
.ConfigureAwait(false))?.ToAbpUserData();
}
}
}