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