using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace io.github.hatayama.uLoopMCP
{
///
/// Security Validation Result
///
/// Related Class: SecurityValidator
///
public class SecurityValidationResult
{
/// Validation status
public bool IsValid { get; set; }
/// List of security violations
public List Violations { get; set; } = new();
/// Compilation errors (extended)
public List CompilationErrors { get; set; } = new();
///
/// Retrieve error summary
///
public string GetErrorSummary()
{
if (IsValid) return "No security violations detected.";
StringBuilder sb = new();
sb.AppendLine($"Security validation failed with {Violations.Count} violation(s):");
foreach (SecurityViolation violation in Violations)
{
sb.AppendLine($" - [{violation.Type}] {violation.Message}");
if (!string.IsNullOrEmpty(violation.ApiName))
{
sb.AppendLine($" API: {violation.ApiName}");
}
}
if (CompilationErrors?.Any() == true)
{
sb.AppendLine($"Compilation errors: {CompilationErrors.Count}");
foreach (string error in CompilationErrors)
{
sb.AppendLine($" - {error}");
}
}
return sb.ToString();
}
}
}