chore: add documentation comments and stylecop rules

This commit is contained in:
2025-12-04 11:25:01 +08:00
parent 17d143a351
commit 8e4c2b0e45
142 changed files with 1309 additions and 439 deletions

View File

@@ -6,7 +6,7 @@
public static class DatabaseConstants
{
/// <summary>
/// 默认业务库AppDatabase
/// 默认业务库AppDatabase.
/// </summary>
public const string AppDataSource = "AppDatabase";

View File

@@ -5,15 +5,43 @@ namespace TakeoutSaaS.Shared.Abstractions.Constants;
/// </summary>
public static class ErrorCodes
{
/// <summary>
/// 请求参数错误。
/// </summary>
public const int BadRequest = 400;
/// <summary>
/// 未授权访问。
/// </summary>
public const int Unauthorized = 401;
/// <summary>
/// 权限不足。
/// </summary>
public const int Forbidden = 403;
/// <summary>
/// 资源未找到。
/// </summary>
public const int NotFound = 404;
/// <summary>
/// 资源冲突。
/// </summary>
public const int Conflict = 409;
/// <summary>
/// 校验失败。
/// </summary>
public const int ValidationFailed = 422;
/// <summary>
/// 服务器内部错误。
/// </summary>
public const int InternalServerError = 500;
// 业务自定义区间10000+
/// <summary>
/// 业务自定义错误10000+)。
/// </summary>
public const int BusinessError = 10001;
}

View File

@@ -6,7 +6,7 @@ namespace TakeoutSaaS.Shared.Abstractions.Results;
/// <summary>
/// 统一的 API 返回结果包装。
/// </summary>
/// <typeparam name="T">数据载荷类型</typeparam>
/// <typeparam name="T">数据载荷类型</typeparam>
public sealed record ApiResponse<T>
{
/// <summary>
@@ -92,6 +92,9 @@ public sealed record ApiResponse<T>
Timestamp = DateTime.UtcNow
};
/// <summary>
/// 解析当前 TraceId。
/// </summary>
private static string ResolveTraceId()
{
if (!string.IsNullOrWhiteSpace(TraceContext.TraceId))
@@ -113,9 +116,19 @@ public sealed record ApiResponse<T>
}
}
/// <summary>
/// 作为 TraceId 缺失时的本地雪花 ID 备用生成器。
/// </summary>
internal sealed class IdFallbackGenerator
{
/// <summary>
/// 延迟初始化的单例实例承载。
/// </summary>
private static readonly Lazy<IdFallbackGenerator> Lazy = new(() => new IdFallbackGenerator());
/// <summary>
/// 获取备用雪花生成器单例。
/// </summary>
public static IdFallbackGenerator Instance => Lazy.Value;
private readonly object _sync = new();
@@ -126,6 +139,9 @@ internal sealed class IdFallbackGenerator
{
}
/// <summary>
/// 生成雪花风格的本地备用 ID。
/// </summary>
public long NextId()
{
lock (_sync)
@@ -149,6 +165,9 @@ internal sealed class IdFallbackGenerator
}
}
/// <summary>
/// 等待到下一个毫秒以避免序列冲突。
/// </summary>
private static long WaitNextMillis(long lastTimestamp)
{
var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

View File

@@ -11,7 +11,6 @@ namespace TakeoutSaaS.Shared.Web.Middleware;
/// </summary>
public sealed class RequestLoggingMiddleware(RequestDelegate next, ILogger<RequestLoggingMiddleware> logger)
{
public async Task InvokeAsync(HttpContext context)
{
var stopwatch = Stopwatch.StartNew();

View File

@@ -12,8 +12,6 @@ namespace TakeoutSaaS.Shared.Web.Security;
/// </remarks>
public sealed class HttpContextCurrentUserAccessor(IHttpContextAccessor httpContextAccessor) : ICurrentUserAccessor
{
/// <inheritdoc />
public long UserId
{