@page "/" @using AccessQueuePlayground.Models @using AccessQueuePlayground.Services @using BlazorBootstrap @inject IAccessQueueManager Manager AccessQueue Playground @if (Config != null) {

Config

Expiration Seconds: @Config.ExpirationSeconds, Activity Seconds: @Config.ActivitySeconds, Capacity Limit: @Config.CapacityLimit

}

@if (Status != null) {

Users with access

@context.Id @context.LatestResponse?.ExpiresOn

Users in queue

@context.Id @(context.LatestResponse?.RequestsAhead ?? 0 + 1)

Inactive users

@context.Id } @code { public AccessQueueStatus? Status; public AccessQueueConfig? Config; protected override void OnInitialized() { Manager.StatusUpdated += OnStatusUpdated; Status = Manager.GetStatus(); Config = Manager.GetConfig(); } private void OnStatusUpdated() { InvokeAsync(() => { Status = Manager.GetStatus(); StateHasChanged(); }); } public void AddUser() { Manager.AddUser(); Status = Manager.GetStatus(); } public void SetUserActive(Guid userId, bool isActive) { Manager.SetUserActive(userId, isActive); } public void RevokeAccess(Guid userId) { Manager.RevokeAccess(userId); } public void RevokeAllAccess() { Manager.RevokeAllAccess(); } public void Reset() { Manager.Reset(); } }