网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using Dpz.Core.Public.ViewModel;
using Dpz.Core.Service.RepositoryService;
using Microsoft.AspNetCore.Identity;

namespace Dpz.Core.Auth.Service;

public sealed class UserInfoStore(IAccountService accountService) : IUserStore<VmUserInfo>
{
    public void Dispose() { }

    public async Task<string> GetUserIdAsync(VmUserInfo user, CancellationToken cancellationToken)
    {
        return await Task.Run(() => user.Id, cancellationToken);
    }

    public async Task<string?> GetUserNameAsync(
        VmUserInfo user,
        CancellationToken cancellationToken
    )
    {
        return await Task.Run(() => user.Name, cancellationToken);
    }

    public async Task SetUserNameAsync(
        VmUserInfo user,
        string? userName,
        CancellationToken cancellationToken
    )
    {
        await Task.Run(() => user.Name = userName, cancellationToken);
    }

    public async Task<string?> GetNormalizedUserNameAsync(
        VmUserInfo user,
        CancellationToken cancellationToken
    )
    {
        return await Task.Run(() => user.Name, cancellationToken);
    }

    public async Task SetNormalizedUserNameAsync(
        VmUserInfo user,
        string? normalizedName,
        CancellationToken cancellationToken
    )
    {
        await Task.Run(() => user.Name = normalizedName, cancellationToken);
    }

    public Task<IdentityResult> CreateAsync(VmUserInfo user, CancellationToken cancellationToken)
    {
        throw new System.NotImplementedException();
    }

    public Task<IdentityResult> UpdateAsync(VmUserInfo user, CancellationToken cancellationToken)
    {
        throw new System.NotImplementedException();
    }

    public Task<IdentityResult> DeleteAsync(VmUserInfo user, CancellationToken cancellationToken)
    {
        throw new System.NotImplementedException();
    }

    public async Task<VmUserInfo?> FindByIdAsync(string userId, CancellationToken cancellationToken)
    {
        return await accountService.GetOneUserAsync(userId);
    }

    public async Task<VmUserInfo?> FindByNameAsync(
        string normalizedUserName,
        CancellationToken cancellationToken
    )
    {
        return await accountService.GetUserInfoByNameAsync(normalizedUserName);
    }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 UserInfoStore 的类,它实现了 IUserStore<VmUserInfo> 接口。这个类的主要功能是作为用户存储的实现,允许对用户信息进行基本的操作,如获取用户信息、更新用户信息等。以下是代码的详细解释:

1. 类的定义

  • public sealed class UserInfoStore(IAccountService accountService) : IUserStore<VmUserInfo>:
    • UserInfoStore 是一个密封类,意味着它不能被继承。
    • 它实现了 IUserStore<VmUserInfo> 接口,VmUserInfo 是用户信息的视图模型。
    • 构造函数接受一个 IAccountService 类型的参数 accountService,用于与用户账户相关的操作。

2. 接口方法实现

该类实现了 IUserStore<VmUserInfo> 接口中的多个方法,具体功能如下:

  • Dispose:

    • public void Dispose() { }:实现了 IDisposable 接口,但没有任何资源需要释放。
  • GetUserIdAsync:

    • public async Task<string> GetUserIdAsync(VmUserInfo user, CancellationToken cancellationToken):异步获取用户的 ID。
  • GetUserNameAsync:

    • public async Task<string?> GetUserNameAsync(VmUserInfo user, CancellationToken cancellationToken):异步获取用户的名称。
  • SetUserNameAsync:

    • public async Task SetUserNameAsync(VmUserInfo user, string? userName, CancellationToken cancellationToken):异步设置用户的名称。
  • GetNormalizedUserNameAsync:

    • public async Task<string?> GetNormalizedUserNameAsync(VmUserInfo user, CancellationToken cancellationToken):异步获取用户的标准化名称(通常是大写或小写)。
  • SetNormalizedUserNameAsync:

    • public async Task SetNormalizedUserNameAsync(VmUserInfo user, string? normalizedName, CancellationToken cancellationToken):异步设置用户的标准化名称。
  • CreateAsync:

    • public Task<IdentityResult> CreateAsync(VmUserInfo user, CancellationToken cancellationToken):创建用户的操作尚未实现,抛出 NotImplementedException
  • UpdateAsync:

    • public Task<IdentityResult> UpdateAsync(VmUserInfo user, CancellationToken cancellationToken):更新用户的操作尚未实现,抛出 NotImplementedException
  • DeleteAsync:

    • public Task<IdentityResult> DeleteAsync(VmUserInfo user, CancellationToken cancellationToken):删除用户的操作尚未实现,抛出 NotImplementedException
  • FindByIdAsync:

    • public async Task<VmUserInfo?> FindByIdAsync(string userId, CancellationToken cancellationToken):根据用户 ID 异步查找用户信息,调用 accountService.GetOneUserAsync(userId)
  • FindByNameAsync:

    • public async Task<VmUserInfo?> FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken):根据标准化的用户名异步查找用户信息,调用 accountService.GetUserInfoByNameAsync(normalizedUserName)

总结

UserInfoStore 类提供了对用户信息的基本操作接口实现,主要用于与用户账户相关的操作。虽然创建、更新和删除用户的功能尚未实现,但它提供了获取和查找用户信息的基本功能。这个类通常会在身份验证和用户管理的上下文中使用。

loading