using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Threading.Tasks; using gehGassi.Domain.Common; namespace gehGassi.Web.Hubs { /// /// Schnittstellenbeschreibung für einen Hub der verbundene Benutzer verwalten kann /// public interface ISystemHubUsers { public ConcurrentDictionary> ConnectedUsers { get; set; } } /// /// Schnittstellenbeschreibung für einen Hub der Systemnachrichten ermöglicht /// public interface ISystemHub { /// /// Buchen der Events eines Kunden /// /// ID des Kunden /// Task Task JoinCustomer(Guid customerId); } /// /// 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. /// public interface ISystemHubSender { /// /// Senden eine Nachricht an einen Benutzer /// /// Benutzer - email /// Nachricht /// Task Task MessageForUser(string user, string message); /// /// Anzeigen der Warte-Animation im Browser /// /// Benutzername /// Timeout in Millisekunden /// Task Task ShowWaitingAsync(string user, int timeout = 25000); /// /// Ausblenden der Warte-Animation im Browser /// /// Benutzername /// Task Task HideWaitingAsync(string user); #region Cart - Warenkorb /// /// Event wenn sich der Warenkorb geändert hat /// /// ID des Kunden als GUID /// Anzahl der Artikel im Warenkorb /// Liste Benutzer die ignoriert werden soll /// Task CartChangedAsync(Guid customerId, int itemCount, List ignoreUsers = null); #endregion } }