From 86e41b22ff3769a1a02b0a0495d444d216e326c5 Mon Sep 17 00:00:00 2001 From: Kevin Matsubara Date: Sat, 29 Mar 2025 19:26:52 +0100 Subject: [PATCH] Consolidate Edit and Add server pages into single routable component. --- .../Components/Controls/ServerComponent.razor | 2 +- .../{EditServer.razor => AddEditServer.razor} | 59 +++++++++++++------ ...rver.razor.css => AddEditServer.razor.css} | 0 .../Components/Pages/AddServer.razor | 59 ------------------- .../Components/Pages/Servers.razor | 2 +- 5 files changed, 44 insertions(+), 78 deletions(-) rename ServerManagement/Components/Pages/{EditServer.razor => AddEditServer.razor} (69%) rename ServerManagement/Components/Pages/{EditServer.razor.css => AddEditServer.razor.css} (100%) delete mode 100644 ServerManagement/Components/Pages/AddServer.razor diff --git a/ServerManagement/Components/Controls/ServerComponent.razor b/ServerManagement/Components/Controls/ServerComponent.razor index 04f9f16..c59fb09 100755 --- a/ServerManagement/Components/Controls/ServerComponent.razor +++ b/ServerManagement/Components/Controls/ServerComponent.razor @@ -44,7 +44,7 @@ }   - Edit + Edit - + -

Edit server

-
-
+@if (Id.HasValue) +{ +

Edit server

+} +else +{ +

Add server

+} @if (server != null) { - + + @if (server.Id > 0) + { + + } @@ -48,29 +52,50 @@ The navigation manager only will respond correctly if all its behaviours are the
- + @if (server.Id > 0) + { + + } + else + { + + }   Close
} @code { - [Parameter] // This is a root parameter. - public int Id { get; set; } + [Parameter] + public int? Id { get; set; } - [SupplyParameterFromForm(FormName = "formServer")] + [SupplyParameterFromForm] private Server? server { get; set; } protected override void OnParametersSet() { - server ??= ServersRepository.GetServerById(this.Id); + if (this.Id.HasValue) + { + server ??= ServersRepository.GetServerById(this.Id.Value); + } + else + { + server ??= new Server() { IsOnline = false }; + } } private void SubmitServer() { if (server != null) { - ServersRepository.UpdateServer(server.Id, server); + if (this.Id.HasValue) + { + ServersRepository.UpdateServer(server.Id, server); + } + else + { + ServersRepository.AddServer(server); + } } // An exception is raised when debugging from VS Code, but not when using dotnet watch. diff --git a/ServerManagement/Components/Pages/EditServer.razor.css b/ServerManagement/Components/Pages/AddEditServer.razor.css similarity index 100% rename from ServerManagement/Components/Pages/EditServer.razor.css rename to ServerManagement/Components/Pages/AddEditServer.razor.css diff --git a/ServerManagement/Components/Pages/AddServer.razor b/ServerManagement/Components/Pages/AddServer.razor deleted file mode 100644 index 0d433ff..0000000 --- a/ServerManagement/Components/Pages/AddServer.razor +++ /dev/null @@ -1,59 +0,0 @@ -@page "/servers/add" -@using System.ComponentModel.DataAnnotations - -@attribute [ExcludeFromInteractiveRouting] - -@inject NavigationManager NavigationManager - -

Add server

-
-
- - - - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -   - Close -
- - -@code { - [SupplyParameterFromForm(FormName = "formServer")] - private Server server { get; set; } = new Server() { IsOnline = false }; - - private void SubmitServer() - { - if (server != null) - { - ServersRepository.AddServer(server); - } - - // An exception is raised when debugging from VS Code, but not when using dotnet watch. - NavigationManager.NavigateTo($"/servers/back_from/{this.server?.City}"); - } -} \ No newline at end of file diff --git a/ServerManagement/Components/Pages/Servers.razor b/ServerManagement/Components/Pages/Servers.razor index d6e6240..d56ef34 100644 --- a/ServerManagement/Components/Pages/Servers.razor +++ b/ServerManagement/Components/Pages/Servers.razor @@ -18,7 +18,7 @@ style="width: 600px">
-Add +Add