using Microsoft.AspNetCore.Components.WebAssembly.Authentication; using Microsoft.AspNetCore.SignalR.Client; using RobotNet.Shares; namespace RobotNet.WebApp.Clients; public class ScriptTaskHubClient : WebAssemblyHubClient { public event Action? TaskPaused; public event Action? TaskResumed; public ScriptTaskHubClient(IAccessTokenProvider tokenProvider, Uri uri) : base(tokenProvider, uri) { Connection.On(nameof(TaskPaused), OnTaskPaused); Connection.On(nameof(TaskResumed), OnTaskResumed); } public async Task Pause(string name) => await Connection.InvokeAsync(nameof(Pause), name); public async Task Resume(string name) => await Connection.InvokeAsync(nameof(Resume), name); public async Task> GetTaskStates() => await Connection.InvokeAsync>(nameof(GetTaskStates)); private void OnTaskPaused(string name) => TaskPaused?.Invoke(name); private void OnTaskResumed(string name) => TaskResumed?.Invoke(name); }