69 lines
2.2 KiB
C#

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