Defined session manager to send/receive messages

This commit is contained in:
tsommer committed 2021-09-23 18:26:26 +02:00
1 parent d1c838e256
commit 0440e0b921
2 files changed
+39

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace BlazorWebassemblyI18n
{
public interface IMessage
{
public Task ReceiveMessage(string message);
}
}
+30
View File
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace BlazorWebassemblyI18n
{
public sealed class SessionManager : IMessage
{
private readonly List<IMessage> 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;
}
}
}