@page "/deployment/instances" @using ScadaLink.Security @using ScadaLink.Commons.Entities.Instances @using ScadaLink.Commons.Entities.Sites @using ScadaLink.Commons.Entities.Templates @using ScadaLink.Commons.Entities.Deployment @using ScadaLink.Commons.Interfaces.Repositories @using ScadaLink.Commons.Types.Enums @using ScadaLink.DeploymentManager @attribute [Authorize(Policy = AuthorizationPolicies.RequireDeployment)] @inject ITemplateEngineRepository TemplateEngineRepository @inject ISiteRepository SiteRepository @inject IDeploymentManagerRepository DeploymentManagerRepository @inject DeploymentService DeploymentService @inject AuthenticationStateProvider AuthStateProvider @inject NavigationManager NavigationManager

Instances

@if (_loading) { } else if (_errorMessage != null) {
@_errorMessage
} else { @* Filters *@
@switch (node.Kind) { case InstanceNodeKind.Site: @node.Label break; case InstanceNodeKind.Area: @node.Label break; case InstanceNodeKind.Instance: @node.Label @node.Instance!.State @if (node.Instance!.State != InstanceState.NotDeployed) { @(node.IsStale ? "Stale" : "Current") } break; } @if (node.Kind == InstanceNodeKind.Instance) { var inst = node.Instance!; var isStale = node.IsStale; @if (inst.State == InstanceState.Enabled) { } else if (inst.State == InstanceState.Disabled) { } } No instances match the current filters.
@_filteredInstances.Count instance(s) total
@* Diff Modal *@ @if (_showDiffModal) { } }
@code { private async Task GetCurrentUserAsync() { var authState = await AuthStateProvider.GetAuthenticationStateAsync(); return authState.User.FindFirst("Username")?.Value ?? "unknown"; } record InstanceTreeNode(string Key, string Label, InstanceNodeKind Kind, List Children, Instance? Instance = null, bool IsStale = false); enum InstanceNodeKind { Site, Area, Instance } private List _allInstances = new(); private List _filteredInstances = new(); private List _sites = new(); private List