@page "/open-acs"
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
@using RobotNet.RobotShares.OpenACS
@using RobotNet.Shares
@using RobotNet.WebApp.Robots.Components.OpenACS
@attribute [Authorize]
@inject IHttpClientFactory HttpClientFactory
Open ACS
@code {
private OpenACSSettingsDto PublishSettingDto = new();
private bool OverlayIsVisible = false;
private PublishSetting PublishSettingRef = default!;
private TrafficSetting TrafficSettingRef = default!;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (!firstRender) return;
await LoadSettings();
}
private async Task LoadSettings()
{
try
{
OverlayIsVisible = true;
StateHasChanged();
using var client = HttpClientFactory.CreateClient("RobotManagerAPI");
var settings = await client.GetFromJsonAsync>("api/OpenACSSettings");
if (settings is null || settings.Data is null || !settings.IsSuccess) PublishSettingDto = new();
else PublishSettingDto = settings.Data;
PublishSettingRef.UpdateSettings(PublishSettingDto.PublishSetting);
TrafficSettingRef.UpdateSettings(PublishSettingDto.TrafficSetting);
OverlayIsVisible = false;
StateHasChanged();
}
catch (AccessTokenNotAvailableException ex)
{
ex.Redirect();
}
}
}