Defined session manager to send/receive messages
This commit is contained in:
parent
d1c838e256
commit
0440e0b921
9
BlazorWebassemblyI18n/IMessage.cs
Normal file
9
BlazorWebassemblyI18n/IMessage.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BlazorWebassemblyI18n
|
||||||
|
{
|
||||||
|
public interface IMessage
|
||||||
|
{
|
||||||
|
public Task ReceiveMessage(string message);
|
||||||
|
}
|
||||||
|
}
|
30
BlazorWebassemblyI18n/SessionManager.cs
Normal file
30
BlazorWebassemblyI18n/SessionManager.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user