using System.Collections.Immutable; namespace StellaOps.Excititor.Connectors.Abstractions; public sealed class VexConnectorOptionsValidationException : Exception { public VexConnectorOptionsValidationException( string connectorId, IEnumerable errors) : base(BuildMessage(connectorId, errors)) { ConnectorId = connectorId; Errors = errors?.ToImmutableArray() ?? ImmutableArray.Empty; } public string ConnectorId { get; } public ImmutableArray Errors { get; } private static string BuildMessage(string connectorId, IEnumerable errors) { var builder = new System.Text.StringBuilder(); builder.Append("Connector options validation failed for '"); builder.Append(connectorId); builder.Append("'."); var list = errors?.ToImmutableArray() ?? ImmutableArray.Empty; if (!list.IsDefaultOrEmpty) { builder.Append(" Errors: "); builder.Append(string.Join("; ", list)); } return builder.ToString(); } }