网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System;
using System.Collections.Generic;
using Dpz.Core.EnumLibrary;
using Dpz.Core.Infrastructure;
using Dpz.Core.Public.Entity;

#nullable enable

namespace Dpz.Core.Public.ViewModel.Request;

public class SaveHealthCheckRequest : IMapFrom<HealthCheck>
{
    public string Id { get; set; } = "";

    #region 基础属性

    /// <summary>
    /// 服务名称(必需)
    /// </summary>
    public required string Name { get; set; }

    /// <summary>
    /// 检测地址(必需)
    /// </summary>
    public required string Endpoint { get; set; }

    /// <summary>
    /// 协议类型(扩展)
    /// </summary>
    public ProtocolType Protocol { get; set; }

    /// <summary>
    /// 检测间隔(必需)
    /// </summary>
    public required TimeSpan Interval { get; set; }

    /// <summary>
    /// 当前健康状态
    /// </summary>
    public HealthStatus Status { get; set; }

    /// <summary>
    /// 上次检测时间
    /// </summary>
    public DateTime? LastCheckTime { get; set; }

    #endregion

    #region 重试配置

    /// <summary>
    /// 失败重试次数(默认3)
    /// </summary>
    public int RetryCount { get; set; } = 3;

    /// <summary>
    /// 超时时间(默认5s)
    /// </summary>
    public TimeSpan Timeout { get; set; } = TimeSpan.FromSeconds(5);

    #endregion

    #region 状态追踪

    /// <summary>
    /// 最后检测耗时
    /// </summary>
    public TimeSpan? LastCheckDuration { get; set; }

    /// <summary>
    /// 错误信息
    /// </summary>
    public string? ErrorMessage { get; set; }

    // 配置属性

    /// <summary>
    /// 是否启用检测
    /// </summary>
    public bool IsEnabled { get; set; } = true;

    /// <summary>
    /// 服务描述
    /// </summary>
    public string? Description { get; set; }

    #endregion

    #region 分类管理

    /// <summary>
    /// 检测优先级(1-5)
    /// </summary>
    public int Priority { get; set; } = 1;

    /// <summary>
    /// 分类标签
    /// </summary>
    public List<string> Tags { get; set; } = [];

    #endregion
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 SaveHealthCheckRequest 的 C# 类,该类用于表示健康检查请求的视图模型。它实现了 IMapFrom<HealthCheck> 接口,表明该类可以从 HealthCheck 实体映射而来。以下是对该类各个部分的详细解释:

1. 基础属性

  • Id: 健康检查的唯一标识符,默认为空字符串。
  • Name: 服务名称,必需属性。
  • Endpoint: 检测地址,必需属性,表示要监控的服务的 URL。
  • Protocol: 协议类型,使用 ProtocolType 枚举,表示使用的协议(如 HTTP、HTTPS 等)。
  • Interval: 检测间隔,必需属性,表示健康检查的频率。
  • Status: 当前健康状态,使用 HealthStatus 枚举,表示服务的健康状况。
  • LastCheckTime: 上次检测时间,使用可空的 DateTime 类型,表示最近一次健康检查的时间。

2. 重试配置

  • RetryCount: 失败重试次数,默认为 3,表示在检测失败时的重试次数。
  • Timeout: 超时时间,默认为 5 秒,表示健康检查的最大等待时间。

3. 状态追踪

  • LastCheckDuration: 最后检测耗时,使用可空的 TimeSpan 类型,表示最近一次健康检查所花费的时间。
  • ErrorMessage: 错误信息,使用可空的字符串,表示在健康检查失败时的错误描述。

4. 配置属性

  • IsEnabled: 是否启用检测,默认为 true,表示该健康检查是否处于启用状态。
  • Description: 服务描述,使用可空的字符串,提供对服务的额外说明。

5. 分类管理

  • Priority: 检测优先级,默认为 1,表示健康检查的优先级,范围通常为 1 到 5。
  • Tags: 分类标签,使用字符串列表,允许为健康检查添加多个标签,以便于分类和管理。

总结

SaveHealthCheckRequest 类的主要功能是封装健康检查请求的相关信息,提供必要的属性以便于创建、更新和管理健康检查。它可以用于 API 请求或其他需要传递健康检查信息的场景。通过实现 IMapFrom<HealthCheck> 接口,该类还可以方便地与 HealthCheck 实体进行转换。

loading