Defined session manager to send/receive messages

This commit is contained in:
Thorsten Sommer 2021-09-23 18:26:26 +02:00
parent d1c838e256
commit 0440e0b921
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace BlazorWebassemblyI18n
{
public interface IMessage
{
public Task ReceiveMessage(string message);
}
}

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;
}
}
}