using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gehGassiApp.Core.Interfaces
{
///
/// Schnittstellenbeschreibung für einen Service der Daten vom AppHub des Servers empfangen kann
///
public interface IAppHubService
{
///
/// Setzen der Basis-Adresse des Servers
///
/// Basis-Adresse
Task SetBaseAddressAsync(string baseAddress);
///
/// Verbindung herstellen
///
/// Task
Task ConnectAsync(string accessToken);
///
/// Verbindung trennen
///
/// Task
Task DisconnectAsync();
///
/// Gibt zurück ob eine SignalR Verbindung besteht
///
/// true wenn ja oder reconnecting, false sonst
bool IsConnected();
///
/// Buchen der Events eines App-Users
///
/// Id des AppUsers
/// Task
Task JoinAppUserAsync(string appUserId);
///
/// Abbestellen der Events eines App-Users
///
/// Id des AppUsers
/// Task
Task LeaveAppUserAsync(string appUserId);
///
/// Buchen der Events einer Konversation
///
/// Id der Konversation
/// Id des AppUsers
/// Task
Task JoinConversationAsync(string conversationId, string appUserId);
///
/// Abbestellen der Events einer Konversation
///
/// Id der Konversation
/// Id des AppUsers
/// Task
Task LeaveConversationAsync(string conversationId, string appUserId);
}
}