diff --git a/src/ScadaLink.Host/Actors/AkkaHostedService.cs b/src/ScadaLink.Host/Actors/AkkaHostedService.cs index a1c805f..6a7da91 100644 --- a/src/ScadaLink.Host/Actors/AkkaHostedService.cs +++ b/src/ScadaLink.Host/Actors/AkkaHostedService.cs @@ -302,6 +302,16 @@ akka {{ // Register local handlers with SiteCommunicationActor siteCommActor.Tell(new RegisterLocalHandler(LocalHandlerType.Artifacts, dmProxy)); + // Event log handler — bridges Akka to IEventLogQueryService + var eventLogQueryService = _serviceProvider.GetService(); + if (eventLogQueryService != null) + { + var eventLogHandler = _actorSystem.ActorOf( + Props.Create(() => new SiteEventLogging.EventLogHandlerActor(eventLogQueryService)), + "event-log-handler"); + siteCommActor.Tell(new RegisterLocalHandler(LocalHandlerType.EventLog, eventLogHandler)); + } + // Register SiteCommunicationActor with ClusterClientReceptionist so central ClusterClients can reach it ClusterClientReceptionist.Get(_actorSystem).RegisterService(siteCommActor); diff --git a/src/ScadaLink.SiteEventLogging/EventLogHandlerActor.cs b/src/ScadaLink.SiteEventLogging/EventLogHandlerActor.cs new file mode 100644 index 0000000..73d1712 --- /dev/null +++ b/src/ScadaLink.SiteEventLogging/EventLogHandlerActor.cs @@ -0,0 +1,27 @@ +using Akka.Actor; +using Akka.Event; +using ScadaLink.Commons.Messages.RemoteQuery; + +namespace ScadaLink.SiteEventLogging; + +/// +/// Akka actor bridge for . +/// Receives from the SiteCommunicationActor +/// and returns . +/// +public class EventLogHandlerActor : ReceiveActor +{ + private readonly ILoggingAdapter _log = Context.GetLogger(); + private readonly IEventLogQueryService _queryService; + + public EventLogHandlerActor(IEventLogQueryService queryService) + { + _queryService = queryService; + + Receive(msg => + { + var response = _queryService.ExecuteQuery(msg); + Sender.Tell(response); + }); + } +} diff --git a/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj b/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj index 080a38e..c66bd59 100644 --- a/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj +++ b/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj @@ -8,6 +8,7 @@ +