56 lines
2.1 KiB
C#
56 lines
2.1 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.AspNetCore.SignalR.Client;
|
|
using RobotNet10.Components.Clients;
|
|
using RobotNet10.ScriptEngine.Shared;
|
|
|
|
namespace RobotNet10.ScriptEditor.Clients;
|
|
|
|
/// <summary>
|
|
/// SignalR HubClient for ConsoleHub - handles console logging events.
|
|
/// </summary>
|
|
public class ConsoleHubClient : HubClient
|
|
{
|
|
public event Action<string>? ErrorReceived;
|
|
public event Action<string>? InfoReceived;
|
|
public event Action<string>? WarningReceived;
|
|
|
|
public ConsoleHubClient(NavigationManager navigationManager)
|
|
: base(navigationManager.ToAbsoluteUri(HubEndpoints.ScriptConsoleHubPath))
|
|
{
|
|
Connection.On<string>("Error", message => ErrorReceived?.Invoke(message));
|
|
Connection.On<string>("Info", message => InfoReceived?.Invoke(message));
|
|
Connection.On<string>("Warning", message => WarningReceived?.Invoke(message));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Registers to receive console messages for a specific task.
|
|
/// </summary>
|
|
public Task RegisterTaskAsync(string name) => Connection.InvokeAsync("RegisterTask", name);
|
|
|
|
/// <summary>
|
|
/// Unregisters from receiving console messages for a specific task.
|
|
/// </summary>
|
|
public Task UnregisterTaskAsync(string name) => Connection.InvokeAsync("UnregisterTask", name);
|
|
|
|
/// <summary>
|
|
/// Registers to receive console messages for a specific mission.
|
|
/// </summary>
|
|
public Task RegisterMissionAsync(Guid missionId) => Connection.InvokeAsync("RegisterMission", missionId);
|
|
|
|
/// <summary>
|
|
/// Unregisters from receiving console messages for a specific mission.
|
|
/// </summary>
|
|
public Task UnregisterMissionAsync(Guid missionId) => Connection.InvokeAsync("UnregisterMission", missionId);
|
|
|
|
/// <summary>
|
|
/// Registers to receive all console messages.
|
|
/// </summary>
|
|
public Task RegisterAllAsync() => Connection.InvokeAsync("RegisterAll");
|
|
|
|
/// <summary>
|
|
/// Unregisters from receiving all console messages.
|
|
/// </summary>
|
|
public Task UnregisterAllAsync() => Connection.InvokeAsync("UnregisterAll");
|
|
}
|
|
|