Files
I150/srcs/RobotNet10/Components/RobotNet10.ScriptEditor/Clients/InstanceMissionHubClient.cs
2026-07-03 16:37:12 +07:00

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);
}
}