网站首页 网站源码
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
}
上述代码定义了一个名为 SaveHealthCheckRequest
的 C# 类,该类用于表示健康检查请求的视图模型。它实现了 IMapFrom<HealthCheck>
接口,表明该类可以从 HealthCheck
实体映射而来。以下是对该类各个部分的详细解释:
ProtocolType
枚举,表示使用的协议(如 HTTP、HTTPS 等)。HealthStatus
枚举,表示服务的健康状况。DateTime
类型,表示最近一次健康检查的时间。TimeSpan
类型,表示最近一次健康检查所花费的时间。true
,表示该健康检查是否处于启用状态。SaveHealthCheckRequest
类的主要功能是封装健康检查请求的相关信息,提供必要的属性以便于创建、更新和管理健康检查。它可以用于 API 请求或其他需要传递健康检查信息的场景。通过实现 IMapFrom<HealthCheck>
接口,该类还可以方便地与 HealthCheck
实体进行转换。