using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.SignalR.Client;
using RobotNet10.Components.Clients;
using RobotNet10.ScriptEngine.Shared;
using RobotNet10.Shared;
namespace RobotNet10.ScriptEditor.Clients;
///
/// SignalR HubClient for InstanceMissionHub - handles instance mission operations.
///
public class InstanceMissionHubClient : HubClient
{
public InstanceMissionHubClient(NavigationManager navigationManager)
: base(navigationManager.ToAbsoluteUri(HubEndpoints.InstanceMissionHubPath))
{
}
///
/// Searches instance missions with pagination and text search.
///
public Task> SearchInstanceMissionsAsync(SearchRequest request)
{
return Connection.InvokeAsync>("SearchInstanceMissions", request);
}
///
/// Gets the log for a specific instance mission.
///
public Task GetInstanceMissionLogAsync(Guid missionId)
{
return Connection.InvokeAsync("GetInstanceMissionLog", missionId);
}
///
/// Cancels a running or paused mission.
///
public Task CancelMissionAsync(Guid missionId, string reason)
{
return Connection.InvokeAsync("CancelMission", missionId, reason);
}
///
/// Pauses a running mission.
///
public Task PauseMissionAsync(Guid missionId)
{
return Connection.InvokeAsync("PauseMission", missionId);
}
///
/// Resumes a paused mission.
///
public Task ResumeMissionAsync(Guid missionId)
{
return Connection.InvokeAsync("ResumeMission", missionId);
}
}