#10 added config display to UI

This commit is contained in:
henry 2025-05-15 19:32:59 -04:00
parent ffedc09471
commit 365e4a882c
4 changed files with 33 additions and 3 deletions

View File

@ -6,7 +6,15 @@
@inject IAccessQueueManager Manager @inject IAccessQueueManager Manager
<PageTitle>AccessQueue Playground</PageTitle> <PageTitle>AccessQueue Playground</PageTitle>
@if (Config != null)
{
<h4>Config</h4>
<p>
<b>Expiration Seconds:</b> @Config.ExpirationSeconds,
<b>Activity Seconds:</b> @Config.ActivitySeconds,
<b>Capacity Limit:</b> @Config.CapacityLimit
</p>
}
<p> <p>
<Button Color="ButtonColor.Success" @onclick="AddUser">Add User</Button> <Button Color="ButtonColor.Success" @onclick="AddUser">Add User</Button>
<Button Color="ButtonColor.Danger" @onclick="RevokeAllAccess">Revoke All</Button> <Button Color="ButtonColor.Danger" @onclick="RevokeAllAccess">Revoke All</Button>
@ -73,11 +81,12 @@
@code { @code {
public AccessQueueStatus? Status; public AccessQueueStatus? Status;
public AccessQueueConfig? Config;
protected override void OnInitialized() protected override void OnInitialized()
{ {
Manager.StatusUpdated += OnStatusUpdated; Manager.StatusUpdated += OnStatusUpdated;
Status = Manager.GetStatus(); Status = Manager.GetStatus();
Config = Manager.GetConfig();
} }
private void OnStatusUpdated() private void OnStatusUpdated()

View File

@ -0,0 +1,10 @@
namespace AccessQueuePlayground.Models
{
public class AccessQueueConfig
{
public int ActivitySeconds { get; set; }
public int ExpirationSeconds { get; set; }
public int CapacityLimit { get; set; }
}
}

View File

@ -2,12 +2,14 @@
using AccessQueuePlayground.Models; using AccessQueuePlayground.Models;
using AccessQueueService.Models; using AccessQueueService.Models;
using AccessQueueService.Services; using AccessQueueService.Services;
using Microsoft.Extensions.Configuration;
namespace AccessQueuePlayground.Services namespace AccessQueuePlayground.Services
{ {
public class AccessQueueManager : IAccessQueueManager public class AccessQueueManager : IAccessQueueManager
{ {
private readonly IAccessService _accessService; private readonly IAccessService _accessService;
private readonly IConfiguration _config;
private ConcurrentDictionary<Guid, User> _users; private ConcurrentDictionary<Guid, User> _users;
private AccessQueueStatus _status; private AccessQueueStatus _status;
public event Action? StatusUpdated; public event Action? StatusUpdated;
@ -17,15 +19,23 @@ namespace AccessQueuePlayground.Services
StatusUpdated?.Invoke(); StatusUpdated?.Invoke();
} }
public AccessQueueManager(IAccessService accessService) public AccessQueueManager(IAccessService accessService, IConfiguration config)
{ {
_accessService = accessService; _accessService = accessService;
_users = new ConcurrentDictionary<Guid, User>(); _users = new ConcurrentDictionary<Guid, User>();
_status = new AccessQueueStatus(); _status = new AccessQueueStatus();
_config = config;
} }
public AccessQueueStatus GetStatus() => _status; public AccessQueueStatus GetStatus() => _status;
public AccessQueueConfig GetConfig() => new AccessQueueConfig
{
ActivitySeconds = _config.GetValue<int>("AccessQueue:ActivitySeconds"),
ExpirationSeconds = _config.GetValue<int>("AccessQueue:ExpirationSeconds"),
CapacityLimit = _config.GetValue<int>("AccessQueue:CapacityLimit")
};
public Guid AddUser() public Guid AddUser()
{ {
var id = Guid.NewGuid(); var id = Guid.NewGuid();

View File

@ -5,6 +5,7 @@ namespace AccessQueuePlayground.Services
public interface IAccessQueueManager public interface IAccessQueueManager
{ {
public event Action? StatusUpdated; public event Action? StatusUpdated;
public AccessQueueConfig GetConfig();
public Task RecalculateStatus(); public Task RecalculateStatus();
public AccessQueueStatus GetStatus(); public AccessQueueStatus GetStatus();
public Guid AddUser(); public Guid AddUser();