using ScadaLink.HealthMonitoring; namespace ScadaLink.AuditLog.Site; /// /// Audit Log (#23) M2 Bundle G — bridges /// (incremented by every time the primary /// SQLite writer throws) into so the count /// surfaces in the site health report payload as /// SiteHealthReport.SiteAuditWriteFailures. /// /// /// /// Registered by ; /// callers must register AddHealthMonitoring() first so /// resolves. The default /// registration keeps for nodes /// where Site Health Monitoring is not wired (the silent-sink contract — audit /// write failures must NEVER abort the user-facing action, alog.md §7). /// /// public sealed class HealthMetricsAuditWriteFailureCounter : IAuditWriteFailureCounter { private readonly ISiteHealthCollector _collector; public HealthMetricsAuditWriteFailureCounter(ISiteHealthCollector collector) { _collector = collector ?? throw new ArgumentNullException(nameof(collector)); } /// public void Increment() => _collector.IncrementSiteAuditWriteFailures(); }