using AsbCloudApp.Data;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace AsbCloudWebApi.SignalR
{
    // SignalR manual:
    // https://docs.microsoft.com/ru-ru/aspnet/core/signalr/introduction?view=aspnetcore-5.0

    [Authorize]
    public class TelemetryHub : Hub<ITelemetryHubClient>
    {
        public Task AddToGroup(string groupName)
            => Groups.AddToGroupAsync(Context.ConnectionId, groupName.ToString());

        public Task RemoveFromGroup(string groupName)
            => Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName);

        public Task SendDataSaub(string groupName, IEnumerable<DataSaubBaseDto> data)
            => Clients.Group(groupName).ReceiveDataSaub(data);

    }
}