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