The SiteCommunicationActor expected an event log handler but none was registered, causing "Event log handler not available" on the Event Logs page and CLI. Bridge IEventLogQueryService to Akka via a simple actor.
28 lines
805 B
C#
28 lines
805 B
C#
using Akka.Actor;
|
|
using Akka.Event;
|
|
using ScadaLink.Commons.Messages.RemoteQuery;
|
|
|
|
namespace ScadaLink.SiteEventLogging;
|
|
|
|
/// <summary>
|
|
/// Akka actor bridge for <see cref="IEventLogQueryService"/>.
|
|
/// Receives <see cref="EventLogQueryRequest"/> from the SiteCommunicationActor
|
|
/// and returns <see cref="EventLogQueryResponse"/>.
|
|
/// </summary>
|
|
public class EventLogHandlerActor : ReceiveActor
|
|
{
|
|
private readonly ILoggingAdapter _log = Context.GetLogger();
|
|
private readonly IEventLogQueryService _queryService;
|
|
|
|
public EventLogHandlerActor(IEventLogQueryService queryService)
|
|
{
|
|
_queryService = queryService;
|
|
|
|
Receive<EventLogQueryRequest>(msg =>
|
|
{
|
|
var response = _queryService.ExecuteQuery(msg);
|
|
Sender.Tell(response);
|
|
});
|
|
}
|
|
}
|