From 0440e0b921228dac658bdbe5815d2cbcbc9c60c4 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Thu, 23 Sep 2021 18:26:26 +0200 Subject: [PATCH] Defined session manager to send/receive messages --- BlazorWebassemblyI18n/IMessage.cs | 9 ++++++++ BlazorWebassemblyI18n/SessionManager.cs | 30 +++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 BlazorWebassemblyI18n/IMessage.cs create mode 100644 BlazorWebassemblyI18n/SessionManager.cs diff --git a/BlazorWebassemblyI18n/IMessage.cs b/BlazorWebassemblyI18n/IMessage.cs new file mode 100644 index 0000000..ac0d8b0 --- /dev/null +++ b/BlazorWebassemblyI18n/IMessage.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace BlazorWebassemblyI18n +{ + public interface IMessage + { + public Task ReceiveMessage(string message); + } +} \ No newline at end of file diff --git a/BlazorWebassemblyI18n/SessionManager.cs b/BlazorWebassemblyI18n/SessionManager.cs new file mode 100644 index 0000000..fa9aac3 --- /dev/null +++ b/BlazorWebassemblyI18n/SessionManager.cs @@ -0,0 +1,30 @@ +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; + } + } +} \ No newline at end of file