31 lines
1.1 KiB
C#
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");
|
|
}
|