73 lines
2.4 KiB
C#
73 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using gehGassi.Domain.Common;
|
|
|
|
namespace gehGassi.Web.Hubs
|
|
{
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Hub der verbundene Benutzer verwalten kann
|
|
/// </summary>
|
|
public interface ISystemHubUsers
|
|
{
|
|
public ConcurrentDictionary<string, List<string>> ConnectedUsers { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Hub der Systemnachrichten ermöglicht
|
|
/// </summary>
|
|
public interface ISystemHub
|
|
{
|
|
/// <summary>
|
|
/// Buchen der Events eines Kunden
|
|
/// </summary>
|
|
/// <param name="customerId">ID des Kunden</param>
|
|
/// <returns>Task</returns>
|
|
Task JoinCustomer(Guid customerId);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Service der den Versand von SignalR-Nachrichten
|
|
/// vom Server ermöglicht. Dieses Muster wird verwendet um nicht alle SignalR-Methoden an den Client zu veröffentlichen.
|
|
/// </summary>
|
|
public interface ISystemHubSender
|
|
{
|
|
/// <summary>
|
|
/// Senden eine Nachricht an einen Benutzer
|
|
/// </summary>
|
|
/// <param name="user">Benutzer - email</param>
|
|
/// <param name="message">Nachricht</param>
|
|
/// <returns>Task</returns>
|
|
Task MessageForUser(string user, string message);
|
|
|
|
/// <summary>
|
|
/// Anzeigen der Warte-Animation im Browser
|
|
/// </summary>
|
|
/// <param name="user">Benutzername</param>
|
|
/// <param name="timeout">Timeout in Millisekunden</param>
|
|
/// <returns>Task</returns>
|
|
Task ShowWaitingAsync(string user, int timeout = 25000);
|
|
|
|
/// <summary>
|
|
/// Ausblenden der Warte-Animation im Browser
|
|
/// </summary>
|
|
/// <param name="user">Benutzername</param>
|
|
/// <returns>Task</returns>
|
|
Task HideWaitingAsync(string user);
|
|
|
|
#region Cart - Warenkorb
|
|
|
|
/// <summary>
|
|
/// Event wenn sich der Warenkorb geändert hat
|
|
/// </summary>
|
|
/// <param name="customerId">ID des Kunden als GUID</param>
|
|
/// <param name="itemCount">Anzahl der Artikel im Warenkorb</param>
|
|
/// <param name="ignoreUsers">Liste Benutzer die ignoriert werden soll</param>
|
|
/// <returns></returns>
|
|
Task CartChangedAsync(Guid customerId, int itemCount, List<string> ignoreUsers = null);
|
|
|
|
#endregion
|
|
}
|
|
}
|