using Akka.Actor; using ScadaLink.Commons.Messages.Health; using ScadaLink.HealthMonitoring; using ScadaLink.Host.Actors; namespace ScadaLink.Host; /// /// Sends SiteHealthReport to the local SiteCommunicationActor via Akka ActorSelection. /// The SiteCommunicationActor forwards it to central. /// public class AkkaHealthReportTransport : IHealthReportTransport { private readonly AkkaHostedService _akkaService; public AkkaHealthReportTransport(AkkaHostedService akkaService) { _akkaService = akkaService; } public void Send(SiteHealthReport report) { var actorSystem = _akkaService.ActorSystem; if (actorSystem == null) return; var siteComm = actorSystem.ActorSelection("/user/site-communication"); siteComm.Tell(report, ActorRefs.NoSender); } }