using Insight.Agent.Services; using Insight.Domain.Interfaces; using Insight.Domain.Network; using Insight.Domain.Network.Agent.Messages; namespace Insight.Agent.Network.Handlers; public class CustomHandler(ScriptService scriptService) : IMessageHandler { private readonly ScriptService _scriptService = scriptService; public async ValueTask HandleAsync(AgentSession sender, TMessage message, CancellationToken cancellationToken) where TMessage : IMessage { switch (message) { case Request request: await OnRequestAsync(sender, request, cancellationToken); break; } } private async ValueTask OnRequestAsync(AgentSession sender, Request request, CancellationToken cancellationToken) { if (request.RequestData is null) return; var result = await _scriptService.QueryAsync(request.RequestData); await sender.SendAsync(new Response(request) { ResponseData = result.HadErrors ? result.Errors : result.Data, ResponseError = result.HadErrors }, cancellationToken); } }