using System.Reflection.Metadata.Ecma335;
namespace Validation.Core
{
///
/// 校验结果
///
public class ValidationResult
{
///
/// 是否合法
///
public bool IsValid { get; set; } = true;
///
/// 错误
///
public List Errors { get; set; } = new List();
///
/// 警告
///
public List Warnings { get; set; } = new List();
///
/// 添加错误信息
///
/// 错误信息
public void AddError(int row, string error)
{
Errors.Add(new ValidationMessage(row, error));
IsValid = false;
}
///
/// 添加警告信息
///
/// 警告信息
public void AddWarning(int row, string warning)
{
Warnings.Add(new ValidationMessage(row, warning));
IsValid = false;
}
///
/// 返回验证结果的字符串表示
///
/// 包含验证结果详细信息的字符串
public override string ToString()
{
var sb = new System.Text.StringBuilder();
sb.AppendLine($"验证结果: {(IsValid ? "通过" : "失败")}");
sb.AppendLine($"错误数量: {Errors.Count}");
sb.AppendLine($"警告数量: {Warnings.Count}");
AppendMessages(sb, "错误", Errors);
AppendMessages(sb, "警告", Warnings);
return sb.ToString();
}
private void AppendMessages(System.Text.StringBuilder sb, string messageType, List messages)
{
if (messages.Count > 0)
{
sb.AppendLine($"{messageType}详情:");
foreach (var message in messages)
{
sb.AppendLine($" 第{message.RowIndex}行: {message.Message}");
}
}
}
}
}