@page "/admin/servers/nodes/{Id:int}" @using System.Net @using LucideBlazor @using Moonlight.Frontend.Infrastructure.Helpers @using MoonlightServers.Shared @using MoonlightServers.Shared.Admin.Nodes @using ShadcnBlazor.Buttons @using ShadcnBlazor.Cards @using ShadcnBlazor.Emptys @using ShadcnBlazor.Extras.Common @using ShadcnBlazor.Extras.Forms @using ShadcnBlazor.Extras.Toasts @using ShadcnBlazor.Fields @using ShadcnBlazor.Inputs @inject HttpClient HttpClient @inject NavigationManager Navigation @inject ToastService ToastService @if (Node == null) { Node not found A node with this id cannot be found } else {

Update Node

Update node @Node.Name
Continue
Name HTTP Endpoint
}
@code { [Parameter] public int Id { get; set; } private UpdateNodeDto Request; private NodeDto? Node; private async Task LoadAsync(LazyLoader _) { var response = await HttpClient.GetAsync($"api/admin/servers/nodes/{Id}"); if (!response.IsSuccessStatusCode) { if(response.StatusCode == HttpStatusCode.NotFound) return; response.EnsureSuccessStatusCode(); return; } Node = await response.Content.ReadFromJsonAsync(SerializationContext.Default.Options); if(Node == null) return; Request = new UpdateNodeDto() { Name = Node.Name, HttpEndpointUrl = Node.HttpEndpointUrl }; } private async Task OnSubmitAsync(EditContext context, ValidationMessageStore validationMessageStore) { var response = await HttpClient.PutAsJsonAsync( $"/api/admin/servers/nodes/{Id}", Request, SerializationContext.Default.Options ); if (!response.IsSuccessStatusCode) { await ProblemDetailsHelper.HandleProblemDetailsAsync(response, Request, validationMessageStore); return false; } await ToastService.SuccessAsync( "Node Update", $"Successfully updated node {Request.Name}" ); Navigation.NavigateTo("/admin/servers?tab=nodes"); return true; } }