Browse Source

Initial commit to test branch

test
hyh 3 months ago
parent
commit
f7aff85d75
  1. 72
      src/CellularManagement.Application/Behaviours/ValidationBehaviour.cs
  2. 3
      src/CellularManagement.Application/CellularManagement.Application.csproj
  3. 76
      src/CellularManagement.Application/Common/OperationResult.cs
  4. 28
      src/CellularManagement.Application/Common/StringExtensions.cs
  5. 17
      src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserCommand.cs
  6. 113
      src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserCommandHandler.cs
  7. 29
      src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserCommandValidator.cs
  8. 27
      src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserResponse.cs
  9. 32
      src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserCommand.cs
  10. 85
      src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserCommandHandler.cs
  11. 49
      src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserCommandValidator.cs
  12. 10
      src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserResponse.cs
  13. 30
      src/CellularManagement.Application/Features/Auth/Common/UserInfo.cs
  14. 77
      src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Application.deps.json
  15. BIN
      src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Application.dll
  16. BIN
      src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Application.pdb
  17. BIN
      src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Domain.dll
  18. BIN
      src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Domain.pdb
  19. 12
      src/CellularManagement.Application/obj/CellularManagement.Application.csproj.nuget.dgspec.json
  20. 2
      src/CellularManagement.Application/obj/CellularManagement.Application.csproj.nuget.g.targets
  21. 4
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.AssemblyInfo.cs
  22. 2
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.AssemblyInfoInputs.cache
  23. BIN
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.assets.cache
  24. BIN
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.csproj.AssemblyReference.cache
  25. 2
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.csproj.CoreCompileInputs.cache
  26. BIN
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.dll
  27. BIN
      src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.pdb
  28. BIN
      src/CellularManagement.Application/obj/Debug/net8.0/ref/CellularManagement.Application.dll
  29. BIN
      src/CellularManagement.Application/obj/Debug/net8.0/refint/CellularManagement.Application.dll
  30. 135
      src/CellularManagement.Application/obj/project.assets.json
  31. 7
      src/CellularManagement.Application/obj/project.nuget.cache
  32. BIN
      src/CellularManagement.Domain/bin/Debug/net8.0/CellularManagement.Domain.dll
  33. BIN
      src/CellularManagement.Domain/bin/Debug/net8.0/CellularManagement.Domain.pdb
  34. 4
      src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.AssemblyInfo.cs
  35. 2
      src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.AssemblyInfoInputs.cache
  36. BIN
      src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.dll
  37. BIN
      src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.pdb
  38. BIN
      src/CellularManagement.Domain/obj/Debug/net8.0/ref/CellularManagement.Domain.dll
  39. BIN
      src/CellularManagement.Domain/obj/Debug/net8.0/refint/CellularManagement.Domain.dll
  40. BIN
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Application.dll
  41. BIN
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Application.pdb
  42. BIN
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Domain.dll
  43. BIN
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Domain.pdb
  44. 54
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Infrastructure.deps.json
  45. BIN
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Infrastructure.dll
  46. BIN
      src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Infrastructure.pdb
  47. 12
      src/CellularManagement.Infrastructure/obj/CellularManagement.Infrastructure.csproj.nuget.dgspec.json
  48. 4
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.AssemblyInfo.cs
  49. 2
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.AssemblyInfoInputs.cache
  50. BIN
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.assets.cache
  51. BIN
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.csproj.AssemblyReference.cache
  52. 2
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.csproj.CoreCompileInputs.cache
  53. BIN
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.dll
  54. BIN
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.pdb
  55. BIN
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/ref/CellularManagement.Infrastructure.dll
  56. BIN
      src/CellularManagement.Infrastructure/obj/Debug/net8.0/refint/CellularManagement.Infrastructure.dll
  57. 103
      src/CellularManagement.Infrastructure/obj/project.assets.json
  58. 5
      src/CellularManagement.Infrastructure/obj/project.nuget.cache
  59. BIN
      src/CellularManagement.Presentation/bin/Debug/net8.0/CellularManagement.Presentation.dll
  60. BIN
      src/CellularManagement.Presentation/bin/Debug/net8.0/CellularManagement.Presentation.pdb
  61. 4
      src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.AssemblyInfo.cs
  62. 2
      src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.AssemblyInfoInputs.cache
  63. BIN
      src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.dll
  64. BIN
      src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.pdb
  65. BIN
      src/CellularManagement.Presentation/obj/Debug/net8.0/ref/CellularManagement.Presentation.dll
  66. BIN
      src/CellularManagement.Presentation/obj/Debug/net8.0/refint/CellularManagement.Presentation.dll
  67. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Application.dll
  68. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Application.pdb
  69. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Domain.dll
  70. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Domain.pdb
  71. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Infrastructure.dll
  72. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Infrastructure.pdb
  73. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Presentation.dll
  74. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Presentation.pdb
  75. 20
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.deps.json
  76. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.dll
  77. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.exe
  78. BIN
      src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.pdb
  79. 12
      src/CellularManagement.WebAPI/obj/CellularManagement.WebAPI.csproj.nuget.dgspec.json
  80. 4
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.AssemblyInfo.cs
  81. 2
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.AssemblyInfoInputs.cache
  82. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.assets.cache
  83. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.csproj.AssemblyReference.cache
  84. 2
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.csproj.CoreCompileInputs.cache
  85. 1
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.csproj.FileListAbsolute.txt
  86. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.dll
  87. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.pdb
  88. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/apphost.exe
  89. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/ref/CellularManagement.WebAPI.dll
  90. BIN
      src/CellularManagement.WebAPI/obj/Debug/net8.0/refint/CellularManagement.WebAPI.dll
  91. 43
      src/CellularManagement.WebAPI/obj/project.assets.json
  92. 3
      src/CellularManagement.WebAPI/obj/project.nuget.cache

72
src/CellularManagement.Application/Behaviours/ValidationBehaviour.cs

@ -0,0 +1,72 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using FluentValidation;
using MediatR;
using Microsoft.Extensions.Logging;
namespace CellularManagement.Application.Behaviours
{
/// <summary>
/// 请求验证行为类
/// </summary>
/// <typeparam name="TRequest">请求类型</typeparam>
/// <typeparam name="TResponse">响应类型</typeparam>
public sealed class ValidationBehaviour<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
where TRequest : class, IRequest<TResponse>
{
private readonly IEnumerable<IValidator<TRequest>> _validators;
private readonly ILogger<ValidationBehaviour<TRequest, TResponse>> _logger;
public ValidationBehaviour(
IEnumerable<IValidator<TRequest>> validators,
ILogger<ValidationBehaviour<TRequest, TResponse>> logger)
{
_validators = validators ?? throw new ArgumentNullException(nameof(validators));
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
/// <summary>
/// 处理请求验证
/// </summary>
public async Task<TResponse> Handle(
TRequest request,
RequestHandlerDelegate<TResponse> next,
CancellationToken cancellationToken)
{
if (!_validators.Any())
{
return await next();
}
try
{
var context = new ValidationContext<TRequest>(request);
var validationResults = await Task.WhenAll(
_validators.Select(v => v.ValidateAsync(context, cancellationToken)));
var failures = validationResults
.SelectMany(result => result.Errors)
.Where(failure => failure != null)
.ToList();
if (failures.Any())
{
_logger.LogWarning(
"验证失败 - {RequestType} - 错误: {@Errors}",
typeof(TRequest).Name,
failures);
throw new ValidationException(failures);
}
return await next();
}
catch (Exception ex)
{
_logger.LogError(ex, "验证过程中发生错误 - {RequestType}", typeof(TRequest).Name);
throw;
}
}
}
}

3
src/CellularManagement.Application/CellularManagement.Application.csproj

@ -5,7 +5,10 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="FluentValidation" Version="11.9.0" />
<PackageReference Include="MediatR" Version="12.2.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
</ItemGroup>
<PropertyGroup>

76
src/CellularManagement.Application/Common/OperationResult.cs

@ -0,0 +1,76 @@
/// <summary>
/// 泛型结果类,用于封装操作结果
/// </summary>
/// <typeparam name="T">结果数据类型</typeparam>
public sealed record OperationResult<T>(
/// <summary>
/// 成功消息
/// </summary>
string? SuccessMessage,
/// <summary>
/// 错误消息列表
/// </summary>
List<string>? ErrorMessages,
/// <summary>
/// 结果数据
/// </summary>
T? Data)
{
/// <summary>
/// 判断操作是否成功
/// </summary>
public bool IsSuccess => ErrorMessages == null || !ErrorMessages.Any();
/// <summary>
/// 创建成功结果(仅包含数据)
/// </summary>
/// <param name="data">结果数据</param>
/// <returns>成功结果</returns>
public static OperationResult<T> CreateSuccess(T data)
{
return new OperationResult<T>(null, null, data);
}
/// <summary>
/// 创建成功结果(仅包含成功消息)
/// </summary>
/// <param name="successMessage">成功消息</param>
/// <returns>成功结果</returns>
public static OperationResult<T> CreateSuccess(string successMessage)
{
return new OperationResult<T>(successMessage, null, default);
}
/// <summary>
/// 创建成功结果(包含成功消息和数据)
/// </summary>
/// <param name="successMessage">成功消息</param>
/// <param name="data">结果数据</param>
/// <returns>成功结果</returns>
public static OperationResult<T> CreateSuccess(string successMessage, T data)
{
return new OperationResult<T>(successMessage, null, data);
}
/// <summary>
/// 创建失败结果(单个错误消息)
/// </summary>
/// <param name="errorMessage">错误消息</param>
/// <returns>失败结果</returns>
public static OperationResult<T> CreateFailure(string errorMessage)
{
return new OperationResult<T>(null, new List<string>() { errorMessage }, default);
}
/// <summary>
/// 创建失败结果(多个错误消息)
/// </summary>
/// <param name="errorMessages">错误消息列表</param>
/// <returns>失败结果</returns>
public static OperationResult<T> CreateFailure(List<string> errorMessages)
{
return new OperationResult<T>(null, errorMessages, default);
}
}

28
src/CellularManagement.Application/Common/StringExtensions.cs

@ -0,0 +1,28 @@
using System.Text.RegularExpressions;
namespace CellularManagement.Application.Common;
/// <summary>
/// 字符串扩展方法
/// </summary>
public static class StringExtensions
{
private static readonly Regex EmailRegex = new(
@"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$",
RegexOptions.Compiled);
/// <summary>
/// 验证邮箱格式
/// </summary>
/// <param name="email">邮箱地址</param>
/// <returns>是否有效</returns>
public static bool IsValidEmail(this string email)
{
if (string.IsNullOrWhiteSpace(email))
{
return false;
}
return EmailRegex.IsMatch(email);
}
}

17
src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserCommand.cs

@ -0,0 +1,17 @@
using MediatR;
namespace CellularManagement.Application.Features.Auth.Commands.AuthenticateUser;
/// <summary>
/// 用户认证命令
/// </summary>
public sealed record AuthenticateUserCommand(
/// <summary>
/// 用户名或邮箱
/// </summary>
string UserNameOrEmail,
/// <summary>
/// 密码
/// </summary>
string Password) : IRequest<OperationResult<AuthenticateUserResponse>>;

113
src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserCommandHandler.cs

@ -0,0 +1,113 @@
using System.Security.Claims;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging;
using MediatR;
using CellularManagement.Application.Common;
using CellularManagement.Application.Services;
using CellularManagement.Domain.Entities;
using CellularManagement.Application.Features.Auth.Common;
namespace CellularManagement.Application.Features.Auth.Commands.AuthenticateUser;
/// <summary>
/// 用户认证命令处理器
/// </summary>
public sealed class AuthenticateUserCommandHandler : IRequestHandler<AuthenticateUserCommand, OperationResult<AuthenticateUserResponse>>
{
private readonly UserManager<AppUser> _userManager;
private readonly IJwtProvider _jwtProvider;
private readonly ILogger<AuthenticateUserCommandHandler> _logger;
/// <summary>
/// 初始化处理器
/// </summary>
public AuthenticateUserCommandHandler(
UserManager<AppUser> userManager,
IJwtProvider jwtProvider,
ILogger<AuthenticateUserCommandHandler> logger)
{
_userManager = userManager;
_jwtProvider = jwtProvider;
_logger = logger;
}
/// <summary>
/// 处理认证请求
/// </summary>
public async Task<OperationResult<AuthenticateUserResponse>> Handle(
AuthenticateUserCommand request,
CancellationToken cancellationToken)
{
try
{
// 先尝试通过邮箱查找用户
AppUser? user = null;
if (request.UserNameOrEmail.IsValidEmail())
{
user = await _userManager.FindByEmailAsync(request.UserNameOrEmail);
}
// 如果通过邮箱没找到用户,则尝试通过用户名查找
if (user == null)
{
user = await _userManager.FindByNameAsync(request.UserNameOrEmail);
}
if (user == null)
{
_logger.LogWarning("用户 {UserNameOrEmail} 不存在", request.UserNameOrEmail);
return OperationResult<AuthenticateUserResponse>.CreateFailure("用户名或密码错误");
}
// 验证密码
var isValidPassword = await _userManager.CheckPasswordAsync(user, request.Password);
if (!isValidPassword)
{
_logger.LogWarning("用户 {UserNameOrEmail} 密码错误", request.UserNameOrEmail);
return OperationResult<AuthenticateUserResponse>.CreateFailure("用户名或密码错误");
}
// 获取用户角色
var roles = await _userManager.GetRolesAsync(user);
// 创建用户声明
var claims = new List<Claim>
{
new(ClaimTypes.NameIdentifier, user.Id),
new(ClaimTypes.Name, user.UserName!),
new(ClaimTypes.Email, user.Email!)
};
// 添加角色声明
claims.AddRange(roles.Select(role => new Claim(ClaimTypes.Role, role)));
// 生成访问令牌
var accessToken = _jwtProvider.GenerateAccessToken(claims);
// 生成刷新令牌
var refreshToken = _jwtProvider.GenerateRefreshToken(claims);
// 获取令牌过期时间
var expiresAt = _jwtProvider.GetTokenExpiration(accessToken);
// 创建用户信息
var userInfo = new UserInfo(
user.Id,
user.UserName!,
user.Email!,
user.PhoneNumber,
roles);
_logger.LogInformation("用户 {UserNameOrEmail} 认证成功", request.UserNameOrEmail);
// 返回认证结果
return OperationResult<AuthenticateUserResponse>.CreateSuccess(
new AuthenticateUserResponse(accessToken, refreshToken, expiresAt, userInfo));
}
catch (Exception ex)
{
_logger.LogError(ex, "用户 {UserNameOrEmail} 认证失败", request.UserNameOrEmail);
return OperationResult<AuthenticateUserResponse>.CreateFailure("认证失败,请稍后重试");
}
}
}

29
src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserCommandValidator.cs

@ -0,0 +1,29 @@
using FluentValidation;
using CellularManagement.Application.Common;
namespace CellularManagement.Application.Features.Auth.Commands.AuthenticateUser;
/// <summary>
/// 用户认证命令验证器
/// </summary>
public sealed class AuthenticateUserCommandValidator : AbstractValidator<AuthenticateUserCommand>
{
/// <summary>
/// 初始化验证器
/// </summary>
public AuthenticateUserCommandValidator()
{
// 验证用户名或邮箱
RuleFor(x => x.UserNameOrEmail)
.NotEmpty().WithMessage("用户名或邮箱不能为空")
.MaximumLength(256).WithMessage("用户名或邮箱长度不能超过256个字符")
.Must(x => x.Contains('@') ? x.IsValidEmail() : true)
.WithMessage("邮箱格式不正确");
// 验证密码
RuleFor(x => x.Password)
.NotEmpty().WithMessage("密码不能为空")
.MinimumLength(6).WithMessage("密码长度不能少于6个字符")
.MaximumLength(50).WithMessage("密码长度不能超过50个字符");
}
}

27
src/CellularManagement.Application/Features/Auth/Commands/AuthenticateUser/AuthenticateUserResponse.cs

@ -0,0 +1,27 @@
using CellularManagement.Application.Features.Auth.Common;
namespace CellularManagement.Application.Features.Auth.Commands.AuthenticateUser;
/// <summary>
/// 用户认证响应
/// </summary>
public sealed record AuthenticateUserResponse(
/// <summary>
/// 访问令牌
/// </summary>
string AccessToken,
/// <summary>
/// 刷新令牌
/// </summary>
string RefreshToken,
/// <summary>
/// 令牌过期时间
/// </summary>
DateTime ExpiresAt,
/// <summary>
/// 用户信息
/// </summary>
UserInfo User);

32
src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserCommand.cs

@ -0,0 +1,32 @@
using MediatR;
namespace CellularManagement.Application.Features.Auth.Commands.SignUp;
/// <summary>
/// 用户注册命令
/// </summary>
public sealed record RegisterUserCommand(
/// <summary>
/// 用户名
/// </summary>
string UserName,
/// <summary>
/// 邮箱
/// </summary>
string Email,
/// <summary>
/// 密码
/// </summary>
string Password,
/// <summary>
/// 确认密码
/// </summary>
string ConfirmPassword,
/// <summary>
/// 电话号码
/// </summary>
string? PhoneNumber) : IRequest<OperationResult<RegisterUserResponse>>;

85
src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserCommandHandler.cs

@ -0,0 +1,85 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging;
using MediatR;
using CellularManagement.Application.Common;
using CellularManagement.Domain.Entities;
namespace CellularManagement.Application.Features.Auth.Commands.SignUp;
/// <summary>
/// 用户注册命令处理器
/// </summary>
public sealed class RegisterUserCommandHandler : IRequestHandler<RegisterUserCommand, OperationResult<RegisterUserResponse>>
{
private readonly UserManager<AppUser> _userManager;
private readonly ILogger<RegisterUserCommandHandler> _logger;
/// <summary>
/// 初始化处理器
/// </summary>
public RegisterUserCommandHandler(
UserManager<AppUser> userManager,
ILogger<RegisterUserCommandHandler> logger)
{
_userManager = userManager;
_logger = logger;
}
/// <summary>
/// 处理注册请求
/// </summary>
public async Task<OperationResult<RegisterUserResponse>> Handle(
RegisterUserCommand request,
CancellationToken cancellationToken)
{
try
{
// 检查用户名是否已存在
var existingUser = await _userManager.FindByNameAsync(request.UserName);
if (existingUser != null)
{
_logger.LogWarning("用户名 {UserName} 已存在", request.UserName);
return OperationResult<RegisterUserResponse>.CreateFailure("用户名已存在");
}
// 检查邮箱是否已存在
existingUser = await _userManager.FindByEmailAsync(request.Email);
if (existingUser != null)
{
_logger.LogWarning("邮箱 {Email} 已存在", request.Email);
return OperationResult<RegisterUserResponse>.CreateFailure("邮箱已存在");
}
// 创建用户
var user = new AppUser
{
UserName = request.UserName,
Email = request.Email,
PhoneNumber = request.PhoneNumber
};
// 创建用户
var result = await _userManager.CreateAsync(user, request.Password);
if (!result.Succeeded)
{
var errors = result.Errors.Select(e => e.Description).ToList();
_logger.LogWarning("创建用户失败: {Errors}", string.Join(", ", errors));
return OperationResult<RegisterUserResponse>.CreateFailure(errors);
}
// 添加默认角色
await _userManager.AddToRoleAsync(user, "User");
_logger.LogInformation("用户 {UserName} 注册成功", request.UserName);
// 返回注册结果
return OperationResult<RegisterUserResponse>.CreateSuccess(
new RegisterUserResponse(user.Id));
}
catch (Exception ex)
{
_logger.LogError(ex, "用户 {UserName} 注册失败", request.UserName);
return OperationResult<RegisterUserResponse>.CreateFailure("注册失败,请稍后重试");
}
}
}

49
src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserCommandValidator.cs

@ -0,0 +1,49 @@
using FluentValidation;
using CellularManagement.Application.Common;
namespace CellularManagement.Application.Features.Auth.Commands.SignUp;
/// <summary>
/// 用户注册命令验证器
/// </summary>
public sealed class RegisterUserCommandValidator : AbstractValidator<RegisterUserCommand>
{
/// <summary>
/// 初始化验证器
/// </summary>
public RegisterUserCommandValidator()
{
// 验证用户名
RuleFor(x => x.UserName)
.NotEmpty().WithMessage("用户名不能为空")
.MinimumLength(3).WithMessage("用户名长度不能少于3个字符")
.MaximumLength(50).WithMessage("用户名长度不能超过50个字符")
.Matches("^[a-zA-Z0-9_]+$").WithMessage("用户名只能包含字母、数字和下划线");
// 验证邮箱
RuleFor(x => x.Email)
.NotEmpty().WithMessage("邮箱不能为空")
.MaximumLength(256).WithMessage("邮箱长度不能超过256个字符")
.Must(x => x.IsValidEmail()).WithMessage("邮箱格式不正确");
// 验证密码
RuleFor(x => x.Password)
.NotEmpty().WithMessage("密码不能为空")
.MinimumLength(6).WithMessage("密码长度不能少于6个字符")
.MaximumLength(50).WithMessage("密码长度不能超过50个字符")
.Matches("[A-Z]").WithMessage("密码必须包含至少一个大写字母")
.Matches("[a-z]").WithMessage("密码必须包含至少一个小写字母")
.Matches("[0-9]").WithMessage("密码必须包含至少一个数字")
.Matches("[^a-zA-Z0-9]").WithMessage("密码必须包含至少一个特殊字符");
// 验证确认密码
RuleFor(x => x.ConfirmPassword)
.NotEmpty().WithMessage("确认密码不能为空")
.Equal(x => x.Password).WithMessage("两次输入的密码不一致");
// 验证电话号码
RuleFor(x => x.PhoneNumber)
.Matches(@"^1[3-9]\d{9}$").When(x => !string.IsNullOrEmpty(x.PhoneNumber))
.WithMessage("电话号码格式不正确");
}
}

10
src/CellularManagement.Application/Features/Auth/Commands/RegisterUser/RegisterUserResponse.cs

@ -0,0 +1,10 @@
namespace CellularManagement.Application.Features.Auth.Commands.SignUp;
/// <summary>
/// 用户注册响应
/// </summary>
public sealed record RegisterUserResponse(
/// <summary>
/// 用户ID
/// </summary>
string UserId);

30
src/CellularManagement.Application/Features/Auth/Common/UserInfo.cs

@ -0,0 +1,30 @@
namespace CellularManagement.Application.Features.Auth.Common;
/// <summary>
/// 用户信息
/// </summary>
public sealed record UserInfo(
/// <summary>
/// 用户ID
/// </summary>
string Id,
/// <summary>
/// 用户名
/// </summary>
string UserName,
/// <summary>
/// 邮箱
/// </summary>
string Email,
/// <summary>
/// 电话号码
/// </summary>
string? PhoneNumber,
/// <summary>
/// 用户角色列表
/// </summary>
IList<string> Roles);

77
src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Application.deps.json

@ -9,12 +9,43 @@
"CellularManagement.Application/1.0.0": {
"dependencies": {
"CellularManagement.Domain": "1.0.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0"
"FluentValidation": "11.9.0",
"MediatR": "12.2.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"runtime": {
"CellularManagement.Application.dll": {}
}
},
"FluentValidation/11.9.0": {
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"assemblyVersion": "11.0.0.0",
"fileVersion": "11.9.0.0"
}
}
},
"MediatR/12.2.0": {
"dependencies": {
"MediatR.Contracts": "2.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
},
"runtime": {
"lib/net6.0/MediatR.dll": {
"assemblyVersion": "12.0.0.0",
"fileVersion": "12.2.0.0"
}
}
},
"MediatR.Contracts/2.0.1": {
"runtime": {
"lib/netstandard2.0/MediatR.Contracts.dll": {
"assemblyVersion": "2.0.1.0",
"fileVersion": "2.0.1.0"
}
}
},
"Microsoft.AspNetCore.Cryptography.Internal/7.0.0": {
"runtime": {
"lib/net7.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {
@ -97,7 +128,7 @@
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "7.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "7.0.0",
"Microsoft.Extensions.Primitives": "7.0.0"
},
@ -168,7 +199,7 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "7.0.0"
},
"runtime": {
@ -178,11 +209,14 @@
}
}
},
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
"Microsoft.Extensions.Logging.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
},
"runtime": {
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51805"
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
@ -227,6 +261,27 @@
"serviceable": false,
"sha512": ""
},
"FluentValidation/11.9.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VneVlTvwYDkfHV5av3QrQ0amALgrLX6LV94wlYyEsh0B/klJBW7C8y2eAtj5tOZ3jH6CAVpr4s1ZGgew/QWyig==",
"path": "fluentvalidation/11.9.0",
"hashPath": "fluentvalidation.11.9.0.nupkg.sha512"
},
"MediatR/12.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8TUFrHapKi6D74PhnSNEguRsH91HNGyP3R4ZQdgDorJgl9Wac5Prh0vA33QfrniAaS6L2xNNhc6vxzg+5AIbwA==",
"path": "mediatr/12.2.0",
"hashPath": "mediatr.12.2.0.nupkg.sha512"
},
"MediatR.Contracts/2.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FYv95bNT4UwcNA+G/J1oX5OpRiSUxteXaUt2BJbRSdRNiIUNbggJF69wy6mnk2wYToaanpdXZdCwVylt96MpwQ==",
"path": "mediatr.contracts/2.0.1",
"hashPath": "mediatr.contracts.2.0.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Cryptography.Internal/7.0.0": {
"type": "package",
"serviceable": true,
@ -332,12 +387,12 @@
"path": "microsoft.extensions.logging/7.0.0",
"hashPath": "microsoft.extensions.logging.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
"Microsoft.Extensions.Logging.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kmn78+LPVMOWeITUjIlfxUPDsI0R6G0RkeAMBmQxAJ7vBJn4q2dTva7pWi65ceN5vPGjJ9q/Uae2WKgvfktJAw==",
"path": "microsoft.extensions.logging.abstractions/7.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512"
"sha512": "sha512-arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==",
"path": "microsoft.extensions.logging.abstractions/8.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/7.0.0": {
"type": "package",

BIN
src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Application.dll

Binary file not shown.

BIN
src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Application.pdb

Binary file not shown.

BIN
src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.Application/bin/Debug/net8.0/CellularManagement.Domain.pdb

Binary file not shown.

12
src/CellularManagement.Application/obj/CellularManagement.Application.csproj.nuget.dgspec.json

@ -55,9 +55,21 @@
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"FluentValidation": {
"target": "Package",
"version": "[11.9.0, )"
},
"MediatR": {
"target": "Package",
"version": "[12.2.0, )"
},
"Microsoft.Extensions.DependencyInjection": {
"target": "Package",
"version": "[8.0.0, )"
},
"Microsoft.Extensions.Logging.Abstractions": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [

2
src/CellularManagement.Application/obj/CellularManagement.Application.csproj.nuget.g.targets

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\7.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\7.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
</ImportGroup>
</Project>

4
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.AssemblyInfo.cs

@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("CellularManagement.Application")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5de7517fc5aadd8c74654a4e9d55d62d4742337c")]
[assembly: System.Reflection.AssemblyProductAttribute("CellularManagement.Application")]
[assembly: System.Reflection.AssemblyTitleAttribute("CellularManagement.Application")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
// Generated by the MSBuild WriteCodeFragment class.

2
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.AssemblyInfoInputs.cache

@ -1 +1 @@
81cfc18adde389c3ed735e73d4a5a1df2880dce2491e526c9dfa723bea74f632
f64dca1f5ddfed87103436ba0d18e90d8786f1f105d8dbb750a557489f67538f

BIN
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.assets.cache

Binary file not shown.

BIN
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.csproj.AssemblyReference.cache

Binary file not shown.

2
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.csproj.CoreCompileInputs.cache

@ -1 +1 @@
8dbfacc6d4b66280cdce61e7719a6ebfaf1d5c1b90fa32c02ef4a1dfb60e4950
24e50c8ecf618762aaae8f56114fa8e731158179ddfc58fa34cc62c5c5fc1dcd

BIN
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.dll

Binary file not shown.

BIN
src/CellularManagement.Application/obj/Debug/net8.0/CellularManagement.Application.pdb

Binary file not shown.

BIN
src/CellularManagement.Application/obj/Debug/net8.0/ref/CellularManagement.Application.dll

Binary file not shown.

BIN
src/CellularManagement.Application/obj/Debug/net8.0/refint/CellularManagement.Application.dll

Binary file not shown.

135
src/CellularManagement.Application/obj/project.assets.json

@ -2,6 +2,49 @@
"version": 3,
"targets": {
"net8.0": {
"FluentValidation/11.9.0": {
"type": "package",
"compile": {
"lib/net8.0/FluentValidation.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"related": ".xml"
}
}
},
"MediatR/12.2.0": {
"type": "package",
"dependencies": {
"MediatR.Contracts": "[2.0.1, 3.0.0)",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
},
"compile": {
"lib/net6.0/MediatR.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/MediatR.dll": {
"related": ".xml"
}
}
},
"MediatR.Contracts/2.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/MediatR.Contracts.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/MediatR.Contracts.dll": {
"related": ".xml"
}
}
},
"Microsoft.AspNetCore.Cryptography.Internal/7.0.0": {
"type": "package",
"compile": {
@ -264,15 +307,18 @@
"buildTransitive/net6.0/_._": {}
}
},
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
"Microsoft.Extensions.Logging.Abstractions/8.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
},
"compile": {
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
@ -334,6 +380,61 @@
}
},
"libraries": {
"FluentValidation/11.9.0": {
"sha512": "VneVlTvwYDkfHV5av3QrQ0amALgrLX6LV94wlYyEsh0B/klJBW7C8y2eAtj5tOZ3jH6CAVpr4s1ZGgew/QWyig==",
"type": "package",
"path": "fluentvalidation/11.9.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"fluent-validation-icon.png",
"fluentvalidation.11.9.0.nupkg.sha512",
"fluentvalidation.nuspec",
"lib/net5.0/FluentValidation.dll",
"lib/net5.0/FluentValidation.xml",
"lib/net6.0/FluentValidation.dll",
"lib/net6.0/FluentValidation.xml",
"lib/net7.0/FluentValidation.dll",
"lib/net7.0/FluentValidation.xml",
"lib/net8.0/FluentValidation.dll",
"lib/net8.0/FluentValidation.xml",
"lib/netstandard2.0/FluentValidation.dll",
"lib/netstandard2.0/FluentValidation.xml",
"lib/netstandard2.1/FluentValidation.dll",
"lib/netstandard2.1/FluentValidation.xml"
]
},
"MediatR/12.2.0": {
"sha512": "8TUFrHapKi6D74PhnSNEguRsH91HNGyP3R4ZQdgDorJgl9Wac5Prh0vA33QfrniAaS6L2xNNhc6vxzg+5AIbwA==",
"type": "package",
"path": "mediatr/12.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"gradient_128x128.png",
"lib/net6.0/MediatR.dll",
"lib/net6.0/MediatR.xml",
"lib/netstandard2.0/MediatR.dll",
"lib/netstandard2.0/MediatR.xml",
"mediatr.12.2.0.nupkg.sha512",
"mediatr.nuspec"
]
},
"MediatR.Contracts/2.0.1": {
"sha512": "FYv95bNT4UwcNA+G/J1oX5OpRiSUxteXaUt2BJbRSdRNiIUNbggJF69wy6mnk2wYToaanpdXZdCwVylt96MpwQ==",
"type": "package",
"path": "mediatr.contracts/2.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"gradient_128x128.png",
"lib/netstandard2.0/MediatR.Contracts.dll",
"lib/netstandard2.0/MediatR.Contracts.xml",
"mediatr.contracts.2.0.1.nupkg.sha512",
"mediatr.contracts.nuspec"
]
},
"Microsoft.AspNetCore.Cryptography.Internal/7.0.0": {
"sha512": "hFF+HOqtiNrGtO5ZxLVAFo1ksDLQWf8IHEmGRmcF9azlUWvDLZp8+W8gDyLBcGcY5m3ugEvKy/ncElxO4d0NtQ==",
"type": "package",
@ -656,15 +757,16 @@
"useSharedDesignerContext.txt"
]
},
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
"sha512": "kmn78+LPVMOWeITUjIlfxUPDsI0R6G0RkeAMBmQxAJ7vBJn4q2dTva7pWi65ceN5vPGjJ9q/Uae2WKgvfktJAw==",
"Microsoft.Extensions.Logging.Abstractions/8.0.0": {
"sha512": "arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==",
"type": "package",
"path": "microsoft.extensions.logging.abstractions/7.0.0",
"path": "microsoft.extensions.logging.abstractions/8.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
"analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll",
"analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
@ -719,9 +821,11 @@
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
"microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512",
"microsoft.extensions.logging.abstractions.8.0.0.nupkg.sha512",
"microsoft.extensions.logging.abstractions.nuspec",
"useSharedDesignerContext.txt"
]
@ -791,7 +895,10 @@
"projectFileDependencyGroups": {
"net8.0": [
"CellularManagement.Domain >= 1.0.0",
"Microsoft.Extensions.DependencyInjection >= 8.0.0"
"FluentValidation >= 11.9.0",
"MediatR >= 12.2.0",
"Microsoft.Extensions.DependencyInjection >= 8.0.0",
"Microsoft.Extensions.Logging.Abstractions >= 8.0.0"
]
},
"packageFolders": {
@ -849,9 +956,21 @@
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"FluentValidation": {
"target": "Package",
"version": "[11.9.0, )"
},
"MediatR": {
"target": "Package",
"version": "[12.2.0, )"
},
"Microsoft.Extensions.DependencyInjection": {
"target": "Package",
"version": "[8.0.0, )"
},
"Microsoft.Extensions.Logging.Abstractions": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [

7
src/CellularManagement.Application/obj/project.nuget.cache

@ -1,9 +1,12 @@
{
"version": 2,
"dgSpecHash": "bWHiEzexJX4=",
"dgSpecHash": "+111wMm/hg4=",
"success": true,
"projectFilePath": "D:\\dev\\clean-architecture-starter-main\\CellularManagement\\src\\CellularManagement.Application\\CellularManagement.Application.csproj",
"expectedPackageFiles": [
"C:\\Users\\changeself\\.nuget\\packages\\fluentvalidation\\11.9.0\\fluentvalidation.11.9.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\mediatr\\12.2.0\\mediatr.12.2.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\mediatr.contracts\\2.0.1\\mediatr.contracts.2.0.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.aspnetcore.cryptography.internal\\7.0.0\\microsoft.aspnetcore.cryptography.internal.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.aspnetcore.cryptography.keyderivation\\7.0.0\\microsoft.aspnetcore.cryptography.keyderivation.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.aspnetcore.identity.entityframeworkcore\\7.0.0\\microsoft.aspnetcore.identity.entityframeworkcore.7.0.0.nupkg.sha512",
@ -19,7 +22,7 @@
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.identity.core\\7.0.0\\microsoft.extensions.identity.core.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.identity.stores\\7.0.0\\microsoft.extensions.identity.stores.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.logging\\7.0.0\\microsoft.extensions.logging.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\7.0.0\\microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.0\\microsoft.extensions.logging.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.options\\7.0.0\\microsoft.extensions.options.7.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.primitives\\7.0.0\\microsoft.extensions.primitives.7.0.0.nupkg.sha512"
],

BIN
src/CellularManagement.Domain/bin/Debug/net8.0/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.Domain/bin/Debug/net8.0/CellularManagement.Domain.pdb

Binary file not shown.

4
src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.AssemblyInfo.cs

@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("CellularManagement.Domain")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5de7517fc5aadd8c74654a4e9d55d62d4742337c")]
[assembly: System.Reflection.AssemblyProductAttribute("CellularManagement.Domain")]
[assembly: System.Reflection.AssemblyTitleAttribute("CellularManagement.Domain")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
// Generated by the MSBuild WriteCodeFragment class.

2
src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.AssemblyInfoInputs.cache

@ -1 +1 @@
12e431942fef011f2b9b1a9adf8ef5e43c8f65aad53fe3677eb3730c08dcdf15
0ecc48c296d0461cd1a5e952c2f6f289df683878ec748cacb3532116b1689419

BIN
src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.Domain/obj/Debug/net8.0/CellularManagement.Domain.pdb

Binary file not shown.

BIN
src/CellularManagement.Domain/obj/Debug/net8.0/ref/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.Domain/obj/Debug/net8.0/refint/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Application.dll

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Application.pdb

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Domain.pdb

Binary file not shown.

54
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Infrastructure.deps.json

@ -24,6 +24,14 @@
"CellularManagement.Infrastructure.dll": {}
}
},
"FluentValidation/11.9.0": {
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"assemblyVersion": "11.0.0.0",
"fileVersion": "11.9.0.0"
}
}
},
"Humanizer.Core/2.14.1": {
"runtime": {
"lib/net6.0/Humanizer.dll": {
@ -32,6 +40,26 @@
}
}
},
"MediatR/12.2.0": {
"dependencies": {
"MediatR.Contracts": "2.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
},
"runtime": {
"lib/net6.0/MediatR.dll": {
"assemblyVersion": "12.0.0.0",
"fileVersion": "12.2.0.0"
}
}
},
"MediatR.Contracts/2.0.1": {
"runtime": {
"lib/netstandard2.0/MediatR.Contracts.dll": {
"assemblyVersion": "2.0.1.0",
"fileVersion": "2.0.1.0"
}
}
},
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.0": {
"dependencies": {
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.0.3"
@ -649,7 +677,10 @@
"CellularManagement.Application/1.0.0": {
"dependencies": {
"CellularManagement.Domain": "1.0.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0"
"FluentValidation": "11.9.0",
"MediatR": "12.2.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"runtime": {
"CellularManagement.Application.dll": {
@ -679,6 +710,13 @@
"serviceable": false,
"sha512": ""
},
"FluentValidation/11.9.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VneVlTvwYDkfHV5av3QrQ0amALgrLX6LV94wlYyEsh0B/klJBW7C8y2eAtj5tOZ3jH6CAVpr4s1ZGgew/QWyig==",
"path": "fluentvalidation/11.9.0",
"hashPath": "fluentvalidation.11.9.0.nupkg.sha512"
},
"Humanizer.Core/2.14.1": {
"type": "package",
"serviceable": true,
@ -686,6 +724,20 @@
"path": "humanizer.core/2.14.1",
"hashPath": "humanizer.core.2.14.1.nupkg.sha512"
},
"MediatR/12.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8TUFrHapKi6D74PhnSNEguRsH91HNGyP3R4ZQdgDorJgl9Wac5Prh0vA33QfrniAaS6L2xNNhc6vxzg+5AIbwA==",
"path": "mediatr/12.2.0",
"hashPath": "mediatr.12.2.0.nupkg.sha512"
},
"MediatR.Contracts/2.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FYv95bNT4UwcNA+G/J1oX5OpRiSUxteXaUt2BJbRSdRNiIUNbggJF69wy6mnk2wYToaanpdXZdCwVylt96MpwQ==",
"path": "mediatr.contracts/2.0.1",
"hashPath": "mediatr.contracts.2.0.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.0": {
"type": "package",
"serviceable": true,

BIN
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Infrastructure.dll

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/bin/Debug/net8.0/CellularManagement.Infrastructure.pdb

Binary file not shown.

12
src/CellularManagement.Infrastructure/obj/CellularManagement.Infrastructure.csproj.nuget.dgspec.json

@ -55,9 +55,21 @@
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"FluentValidation": {
"target": "Package",
"version": "[11.9.0, )"
},
"MediatR": {
"target": "Package",
"version": "[12.2.0, )"
},
"Microsoft.Extensions.DependencyInjection": {
"target": "Package",
"version": "[8.0.0, )"
},
"Microsoft.Extensions.Logging.Abstractions": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [

4
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.AssemblyInfo.cs

@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("CellularManagement.Infrastructure")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5de7517fc5aadd8c74654a4e9d55d62d4742337c")]
[assembly: System.Reflection.AssemblyProductAttribute("CellularManagement.Infrastructure")]
[assembly: System.Reflection.AssemblyTitleAttribute("CellularManagement.Infrastructure")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
// Generated by the MSBuild WriteCodeFragment class.

2
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.AssemblyInfoInputs.cache

@ -1 +1 @@
4400330d23beb4f3571ec0e32e6f70021f06398ff98ae8ace59717d132777aff
b7a5030c29a32873ce7ea034aded49f9f2b3d3d14db6d4a0804a58141d52a6d7

BIN
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.assets.cache

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.csproj.AssemblyReference.cache

Binary file not shown.

2
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.csproj.CoreCompileInputs.cache

@ -1 +1 @@
d9bda7c9895a366d26bd4ed2ba5c9826acbb03d47916eaac923e899d16ee5cac
20193b07a68300ee5d3c1474d0d724cfa64e140c9c3946f731fd113c1607af61

BIN
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.dll

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/obj/Debug/net8.0/CellularManagement.Infrastructure.pdb

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/obj/Debug/net8.0/ref/CellularManagement.Infrastructure.dll

Binary file not shown.

BIN
src/CellularManagement.Infrastructure/obj/Debug/net8.0/refint/CellularManagement.Infrastructure.dll

Binary file not shown.

103
src/CellularManagement.Infrastructure/obj/project.assets.json

@ -2,6 +2,19 @@
"version": 3,
"targets": {
"net8.0": {
"FluentValidation/11.9.0": {
"type": "package",
"compile": {
"lib/net8.0/FluentValidation.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"related": ".xml"
}
}
},
"Humanizer.Core/2.14.1": {
"type": "package",
"compile": {
@ -15,6 +28,36 @@
}
}
},
"MediatR/12.2.0": {
"type": "package",
"dependencies": {
"MediatR.Contracts": "[2.0.1, 3.0.0)",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
},
"compile": {
"lib/net6.0/MediatR.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/MediatR.dll": {
"related": ".xml"
}
}
},
"MediatR.Contracts/2.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/MediatR.Contracts.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/MediatR.Contracts.dll": {
"related": ".xml"
}
}
},
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.0": {
"type": "package",
"dependencies": {
@ -1169,7 +1212,10 @@
"framework": ".NETCoreApp,Version=v8.0",
"dependencies": {
"CellularManagement.Domain": "1.0.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0"
"FluentValidation": "11.9.0",
"MediatR": "12.2.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"compile": {
"bin/placeholder/CellularManagement.Application.dll": {}
@ -1196,6 +1242,31 @@
}
},
"libraries": {
"FluentValidation/11.9.0": {
"sha512": "VneVlTvwYDkfHV5av3QrQ0amALgrLX6LV94wlYyEsh0B/klJBW7C8y2eAtj5tOZ3jH6CAVpr4s1ZGgew/QWyig==",
"type": "package",
"path": "fluentvalidation/11.9.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"fluent-validation-icon.png",
"fluentvalidation.11.9.0.nupkg.sha512",
"fluentvalidation.nuspec",
"lib/net5.0/FluentValidation.dll",
"lib/net5.0/FluentValidation.xml",
"lib/net6.0/FluentValidation.dll",
"lib/net6.0/FluentValidation.xml",
"lib/net7.0/FluentValidation.dll",
"lib/net7.0/FluentValidation.xml",
"lib/net8.0/FluentValidation.dll",
"lib/net8.0/FluentValidation.xml",
"lib/netstandard2.0/FluentValidation.dll",
"lib/netstandard2.0/FluentValidation.xml",
"lib/netstandard2.1/FluentValidation.dll",
"lib/netstandard2.1/FluentValidation.xml"
]
},
"Humanizer.Core/2.14.1": {
"sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
"type": "package",
@ -1214,6 +1285,36 @@
"logo.png"
]
},
"MediatR/12.2.0": {
"sha512": "8TUFrHapKi6D74PhnSNEguRsH91HNGyP3R4ZQdgDorJgl9Wac5Prh0vA33QfrniAaS6L2xNNhc6vxzg+5AIbwA==",
"type": "package",
"path": "mediatr/12.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"gradient_128x128.png",
"lib/net6.0/MediatR.dll",
"lib/net6.0/MediatR.xml",
"lib/netstandard2.0/MediatR.dll",
"lib/netstandard2.0/MediatR.xml",
"mediatr.12.2.0.nupkg.sha512",
"mediatr.nuspec"
]
},
"MediatR.Contracts/2.0.1": {
"sha512": "FYv95bNT4UwcNA+G/J1oX5OpRiSUxteXaUt2BJbRSdRNiIUNbggJF69wy6mnk2wYToaanpdXZdCwVylt96MpwQ==",
"type": "package",
"path": "mediatr.contracts/2.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"gradient_128x128.png",
"lib/netstandard2.0/MediatR.Contracts.dll",
"lib/netstandard2.0/MediatR.Contracts.xml",
"mediatr.contracts.2.0.1.nupkg.sha512",
"mediatr.contracts.nuspec"
]
},
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.0": {
"sha512": "rwxaZYHips5M9vqxRkGfJthTx+Ws4O4yCuefn17J371jL3ouC5Ker43h2hXb5yd9BMnImE9rznT75KJHm6bMgg==",
"type": "package",

5
src/CellularManagement.Infrastructure/obj/project.nuget.cache

@ -1,10 +1,13 @@
{
"version": 2,
"dgSpecHash": "9dsl2J1lM14=",
"dgSpecHash": "Q12VR619Z0E=",
"success": true,
"projectFilePath": "D:\\dev\\clean-architecture-starter-main\\CellularManagement\\src\\CellularManagement.Infrastructure\\CellularManagement.Infrastructure.csproj",
"expectedPackageFiles": [
"C:\\Users\\changeself\\.nuget\\packages\\fluentvalidation\\11.9.0\\fluentvalidation.11.9.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\mediatr\\12.2.0\\mediatr.12.2.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\mediatr.contracts\\2.0.1\\mediatr.contracts.2.0.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.aspnetcore.authentication.jwtbearer\\8.0.0\\microsoft.aspnetcore.authentication.jwtbearer.8.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.aspnetcore.authorization\\8.0.0\\microsoft.aspnetcore.authorization.8.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.aspnetcore.cryptography.internal\\8.0.0\\microsoft.aspnetcore.cryptography.internal.8.0.0.nupkg.sha512",

BIN
src/CellularManagement.Presentation/bin/Debug/net8.0/CellularManagement.Presentation.dll

Binary file not shown.

BIN
src/CellularManagement.Presentation/bin/Debug/net8.0/CellularManagement.Presentation.pdb

Binary file not shown.

4
src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.AssemblyInfo.cs

@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("CellularManagement.Presentation")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5de7517fc5aadd8c74654a4e9d55d62d4742337c")]
[assembly: System.Reflection.AssemblyProductAttribute("CellularManagement.Presentation")]
[assembly: System.Reflection.AssemblyTitleAttribute("CellularManagement.Presentation")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
// Generated by the MSBuild WriteCodeFragment class.

2
src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.AssemblyInfoInputs.cache

@ -1 +1 @@
1637dd0f1f892e1caaa12a0723bde19c8a3100f22a8056535f2eb729253e56a9
4b46dc01ba9eba595a73c10c781aec70ddf52cd18d9e1395728666b921bbc6af

BIN
src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.dll

Binary file not shown.

BIN
src/CellularManagement.Presentation/obj/Debug/net8.0/CellularManagement.Presentation.pdb

Binary file not shown.

BIN
src/CellularManagement.Presentation/obj/Debug/net8.0/ref/CellularManagement.Presentation.dll

Binary file not shown.

BIN
src/CellularManagement.Presentation/obj/Debug/net8.0/refint/CellularManagement.Presentation.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Application.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Application.pdb

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Domain.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Domain.pdb

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Infrastructure.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Infrastructure.pdb

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Presentation.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.Presentation.pdb

Binary file not shown.

20
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.deps.json

@ -19,6 +19,14 @@
"CellularManagement.WebAPI.dll": {}
}
},
"FluentValidation/11.9.0": {
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"assemblyVersion": "11.0.0.0",
"fileVersion": "11.9.0.0"
}
}
},
"Humanizer.Core/2.14.1": {
"runtime": {
"lib/net6.0/Humanizer.dll": {
@ -856,7 +864,10 @@
"CellularManagement.Application/1.0.0": {
"dependencies": {
"CellularManagement.Domain": "1.0.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0"
"FluentValidation": "11.9.0",
"MediatR": "12.5.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"runtime": {
"CellularManagement.Application.dll": {
@ -918,6 +929,13 @@
"serviceable": false,
"sha512": ""
},
"FluentValidation/11.9.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VneVlTvwYDkfHV5av3QrQ0amALgrLX6LV94wlYyEsh0B/klJBW7C8y2eAtj5tOZ3jH6CAVpr4s1ZGgew/QWyig==",
"path": "fluentvalidation/11.9.0",
"hashPath": "fluentvalidation.11.9.0.nupkg.sha512"
},
"Humanizer.Core/2.14.1": {
"type": "package",
"serviceable": true,

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.exe

Binary file not shown.

BIN
src/CellularManagement.WebAPI/bin/Debug/net8.0/CellularManagement.WebAPI.pdb

Binary file not shown.

12
src/CellularManagement.WebAPI/obj/CellularManagement.WebAPI.csproj.nuget.dgspec.json

@ -55,9 +55,21 @@
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"FluentValidation": {
"target": "Package",
"version": "[11.9.0, )"
},
"MediatR": {
"target": "Package",
"version": "[12.2.0, )"
},
"Microsoft.Extensions.DependencyInjection": {
"target": "Package",
"version": "[8.0.0, )"
},
"Microsoft.Extensions.Logging.Abstractions": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [

4
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.AssemblyInfo.cs

@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("CellularManagement.WebAPI")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5de7517fc5aadd8c74654a4e9d55d62d4742337c")]
[assembly: System.Reflection.AssemblyProductAttribute("CellularManagement.WebAPI")]
[assembly: System.Reflection.AssemblyTitleAttribute("CellularManagement.WebAPI")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
// Generated by the MSBuild WriteCodeFragment class.

2
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.AssemblyInfoInputs.cache

@ -1 +1 @@
9e10b8095ccbd1d20bac88937388182d495d2b9f74e1b0b851868a018b03446c
dbfbe4e2c4d18d017eb8a73ba89158f89c182b81edb771ea092c5199b464a83b

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.assets.cache

Binary file not shown.

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.csproj.AssemblyReference.cache

Binary file not shown.

2
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.csproj.CoreCompileInputs.cache

@ -1 +1 @@
2cd5d39f44b24a8b172f11cb1a7c55162a87d62528b276566a3d2fb042fdd903
f4a006ce19ed3e318693f1d968e2c2e1d263909a7ba5255d4a725e7addc29930

1
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.csproj.FileListAbsolute.txt

@ -126,3 +126,4 @@ D:\dev\clean-architecture-starter-main\CellularManagement\src\CellularManagement
D:\dev\clean-architecture-starter-main\CellularManagement\src\CellularManagement.WebAPI\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll
D:\dev\clean-architecture-starter-main\CellularManagement\src\CellularManagement.WebAPI\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll
D:\dev\clean-architecture-starter-main\CellularManagement\src\CellularManagement.WebAPI\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll
D:\dev\clean-architecture-starter-main\CellularManagement\src\CellularManagement.WebAPI\bin\Debug\net8.0\FluentValidation.dll

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/CellularManagement.WebAPI.pdb

Binary file not shown.

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/apphost.exe

Binary file not shown.

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/ref/CellularManagement.WebAPI.dll

Binary file not shown.

BIN
src/CellularManagement.WebAPI/obj/Debug/net8.0/refint/CellularManagement.WebAPI.dll

Binary file not shown.

43
src/CellularManagement.WebAPI/obj/project.assets.json

@ -2,6 +2,19 @@
"version": 3,
"targets": {
"net8.0": {
"FluentValidation/11.9.0": {
"type": "package",
"compile": {
"lib/net8.0/FluentValidation.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"related": ".xml"
}
}
},
"Humanizer.Core/2.14.1": {
"type": "package",
"compile": {
@ -1677,7 +1690,10 @@
"framework": ".NETCoreApp,Version=v8.0",
"dependencies": {
"CellularManagement.Domain": "1.0.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0"
"FluentValidation": "11.9.0",
"MediatR": "12.2.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"compile": {
"bin/placeholder/CellularManagement.Application.dll": {}
@ -1740,6 +1756,31 @@
}
},
"libraries": {
"FluentValidation/11.9.0": {
"sha512": "VneVlTvwYDkfHV5av3QrQ0amALgrLX6LV94wlYyEsh0B/klJBW7C8y2eAtj5tOZ3jH6CAVpr4s1ZGgew/QWyig==",
"type": "package",
"path": "fluentvalidation/11.9.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"fluent-validation-icon.png",
"fluentvalidation.11.9.0.nupkg.sha512",
"fluentvalidation.nuspec",
"lib/net5.0/FluentValidation.dll",
"lib/net5.0/FluentValidation.xml",
"lib/net6.0/FluentValidation.dll",
"lib/net6.0/FluentValidation.xml",
"lib/net7.0/FluentValidation.dll",
"lib/net7.0/FluentValidation.xml",
"lib/net8.0/FluentValidation.dll",
"lib/net8.0/FluentValidation.xml",
"lib/netstandard2.0/FluentValidation.dll",
"lib/netstandard2.0/FluentValidation.xml",
"lib/netstandard2.1/FluentValidation.dll",
"lib/netstandard2.1/FluentValidation.xml"
]
},
"Humanizer.Core/2.14.1": {
"sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
"type": "package",

3
src/CellularManagement.WebAPI/obj/project.nuget.cache

@ -1,9 +1,10 @@
{
"version": 2,
"dgSpecHash": "0SYasalhohk=",
"dgSpecHash": "T+EVNro1PdU=",
"success": true,
"projectFilePath": "D:\\dev\\clean-architecture-starter-main\\CellularManagement\\src\\CellularManagement.WebAPI\\CellularManagement.WebAPI.csproj",
"expectedPackageFiles": [
"C:\\Users\\changeself\\.nuget\\packages\\fluentvalidation\\11.9.0\\fluentvalidation.11.9.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\mediatr\\12.5.0\\mediatr.12.5.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\mediatr.contracts\\2.0.1\\mediatr.contracts.2.0.1.nupkg.sha512",

Loading…
Cancel
Save