using ZB.MOM.WW.ScadaBridge.HealthMonitoring; namespace ZB.MOM.WW.ScadaBridge.AuditLog.Site; /// /// 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; /// /// Initializes a new backed by the given health collector. /// /// The site health collector to increment on each audit write failure. public HealthMetricsAuditWriteFailureCounter(ISiteHealthCollector collector) { _collector = collector ?? throw new ArgumentNullException(nameof(collector)); } /// public void Increment() => _collector.IncrementSiteAuditWriteFailures(); }