Defined session manager to send/receive messages
This commit is contained in:
1 parent
d1c838e256
commit
0440e0b921
2 files changed
+39
No files matched your search
@@ -0,0 +1,9 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BlazorWebassemblyI18n
|
||||
{
|
||||
public interface IMessage
|
||||
{
|
||||
public Task ReceiveMessage(string message);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user