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