implement feedback loop
This commit is contained in:
29
dotnet/AipsRT/Services/RtErrorHandleStrategy.cs
Normal file
29
dotnet/AipsRT/Services/RtErrorHandleStrategy.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using AipsCore.Application.Common.Message.ErrorMessage;
|
||||
using AipsRT.Hubs;
|
||||
using AipsRT.Model.Whiteboard;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
|
||||
namespace AipsRT.Services;
|
||||
|
||||
public class RtErrorHandleStrategy : IErrorMessageHandleStrategy
|
||||
{
|
||||
private readonly IHubContext<WhiteboardHub> _hubContext;
|
||||
private readonly WhiteboardManager _whiteboardManager;
|
||||
|
||||
public RtErrorHandleStrategy(IHubContext<WhiteboardHub> hubContext, WhiteboardManager whiteboardManager)
|
||||
{
|
||||
_hubContext = hubContext;
|
||||
_whiteboardManager = whiteboardManager;
|
||||
}
|
||||
|
||||
public async Task Handle(ErrorMessage message, CancellationToken cancellationToken)
|
||||
{
|
||||
await _whiteboardManager.RefreshWhiteboard(message.WhiteboardId);
|
||||
|
||||
var whiteboard = _whiteboardManager.GetWhiteboard(message.WhiteboardId)!;
|
||||
|
||||
await _hubContext.Clients
|
||||
.Group(whiteboard.WhiteboardId.ToString())
|
||||
.SendAsync("InitWhiteboard", whiteboard, cancellationToken);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user