RobotNet/RobotNet.WebApp/Clients/DashboardHubClient.cs
2025-10-15 15:15:53 +07:00

31 lines
1.1 KiB
C#

using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Microsoft.AspNetCore.SignalR.Client;
using RobotNet.Script.Shares.Dashboard;
using RobotNet.Shares;
namespace RobotNet.WebApp.Clients;
public class DashboardHubClient : WebAssemblyHubClient
{
public event Action<DashboardDto>? DashboardDataUpdated;
private IDisposable? disDashboardDataUpdated;
public DashboardHubClient(IAccessTokenProvider tokenProvider, Uri uri) : base(tokenProvider, uri)
{
disDashboardDataUpdated = Connection.On<DashboardDto>("DashboardDataUpdated", data => DashboardDataUpdated?.Invoke(data));
}
public override async Task StopAsync()
{
if (disDashboardDataUpdated != null)
{
disDashboardDataUpdated.Dispose();
disDashboardDataUpdated = null;
}
await base.StopAsync();
}
public async Task<MessageResult<DashboardDto>> GetDashboardData()
=> IsConnected ? await Connection.InvokeAsync<MessageResult<DashboardDto>>(nameof(GetDashboardData)) : new(false, "Kết nối thất bại");
}