@page "/config" @inject AccessQueuePlayground.Services.IAccessQueueManager QueueManager @using BlazorBootstrap

Access Queue Configuration

@if (!isCapacityLimitValid) {
Please enter a positive integer.
}
@if (!isActivitySecondsValid) {
Please enter a positive integer.
}
@if (!isExpirationSecondsValid) {
Please enter a positive integer.
}
@if (successMessage != null) { @successMessage }
@code { private ConfigModel config = new(); private bool isCapacityLimitValid = true; private bool isActivitySecondsValid = true; private bool isExpirationSecondsValid = true; private string? successMessage; protected override void OnInitialized() { var current = QueueManager.GetConfig(); config = new ConfigModel { ActivitySeconds = (current.ActivitySeconds ?? 0).ToString(), CapacityLimit = (current.CapacityLimit ?? 0).ToString(), ExpirationSeconds = (current.ExpirationSeconds ?? 0).ToString(), RollingExpiration = current.RollingExpiration ?? false }; ValidateInputs(); } private bool IsFormValid => isCapacityLimitValid && isActivitySecondsValid && isExpirationSecondsValid; private void ValidateInputs() { isCapacityLimitValid = int.TryParse(config.CapacityLimit, out var cap) && cap > 0; isActivitySecondsValid = int.TryParse(config.ActivitySeconds, out var act) && act > 0; isExpirationSecondsValid = int.TryParse(config.ExpirationSeconds, out var exp) && exp > 0; } private async Task HandleValidSubmit() { successMessage = null; ValidateInputs(); if (!IsFormValid) return; await Task.Run(() => QueueManager.UpdateConfig(new () { ActivitySeconds = int.Parse(config.ActivitySeconds), CapacityLimit = int.Parse(config.CapacityLimit), ExpirationSeconds = int.Parse(config.ExpirationSeconds), RollingExpiration = config.RollingExpiration })); successMessage = "Configuration updated successfully."; } public class ConfigModel { public string CapacityLimit { get; set; } = ""; public string ActivitySeconds { get; set; } = ""; public string ExpirationSeconds { get; set; } = ""; public bool RollingExpiration { get; set; } } }