hn-dotnet/Apps/Client/NotificationManager.cs
2020-12-29 20:28:23 +01:00

36 lines
755 B
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
namespace Client
{
public sealed class NotificationManager
{
private readonly ILogger<NotificationManager> _logger;
private Queue<string> _messages = new Queue<string>();
public IReadOnlyList<string> Messages => _messages.ToArray();
public event Action OnChange;
public NotificationManager(ILogger<NotificationManager> logger)
{
_logger = logger;
}
public void Add(string message)
{
_messages.Enqueue(message);
Task.Run(async () =>
{
await Task.Delay(5000);
_messages.Dequeue();
OnChange?.Invoke();
});
OnChange?.Invoke();
}
}
}