using System; using System.Collections.Generic; using System.Threading.Tasks; namespace BlazorWebassemblyI18n { public sealed class SessionManager : IMessage { private readonly List receivers = new(); internal SessionManager() { this.Register(this); } public void Register(IMessage receiver) => this.receivers.Add(receiver); public async Task SendMessage(string content) { foreach (var receiver in this.receivers) await receiver.ReceiveMessage(content); } public Task ReceiveMessage(string message) { Console.WriteLine($"sending message: '{message}'"); return Task.CompletedTask; } } }