Files
Finlytic/FinlyticBackend/Hubs/TradeStreamHub.cs
T

36 lines
1002 B
C#

using System.Threading.Tasks;
using FinlyticCore.Dtos.Bot;
using FinlyticCore.Dtos.Trading;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
namespace FinlyticBackend.Hubs;
public interface ITradeStreamClient
{
Task ReceiveTradeProposal(TradeProposalDto proposal);
Task ReceiveTradeUpdate(ActiveTradeDto trade);
Task ReceiveBotPositionUpdate(BotTradeOrderDto botOrder);
Task ReceivePortfolioSummary(AccountSummaryDto summary);
}
[Authorize]
public class TradeStreamHub : Hub<ITradeStreamClient>
{
public async Task JoinAssetGroup(string isin)
{
if (!string.IsNullOrWhiteSpace(isin))
{
await Groups.AddToGroupAsync(Context.ConnectionId, isin.Trim().ToUpperInvariant());
}
}
public async Task LeaveAssetGroup(string isin)
{
if (!string.IsNullOrWhiteSpace(isin))
{
await Groups.RemoveFromGroupAsync(Context.ConnectionId, isin.Trim().ToUpperInvariant());
}
}
}