diff --git a/ServerManagement/Components/Pages/Servers.razor b/ServerManagement/Components/Pages/Servers.razor index 81ff659..af9df5f 100644 --- a/ServerManagement/Components/Pages/Servers.razor +++ b/ServerManagement/Components/Pages/Servers.razor @@ -19,6 +19,8 @@
Add Server +  +Wizard
diff --git a/ServerManagement/Components/Pages/Wizards/SetCityName.razor b/ServerManagement/Components/Pages/Wizards/SetCityName.razor new file mode 100644 index 0000000..6e88347 --- /dev/null +++ b/ServerManagement/Components/Pages/Wizards/SetCityName.razor @@ -0,0 +1,62 @@ +@page "/cityname" + +@inject NavigationManager NavigationManager + +

City Name

+
+ +@if (!string.IsNullOrWhiteSpace(errorMessage)) +{ +
+ @errorMessage +
+} + + + + + + +
+ + +@code { + private string? errorMessage; + private string? cityName; + + [SupplyParameterFromQuery] + private string? ServerName { get; set; } + + protected override void OnInitialized() + { + base.OnInitialized(); + } + + protected override void OnAfterRender(bool firstRender) + { + if (firstRender) + { + if (string.IsNullOrWhiteSpace(ServerName)) + { + this.errorMessage = "Server name was not provided."; + StateHasChanged(); + } + } + } + + private void GoNext() + { + if (string.IsNullOrWhiteSpace(ServerName)) + { + this.errorMessage = "Server name is required."; + return; + } + if (string.IsNullOrWhiteSpace(cityName)) + { + this.errorMessage = "City name is required."; + return; + } + + NavigationManager.NavigateTo($"/serverstatus?servername={ServerName}&cityname={cityName}"); + } +} \ No newline at end of file diff --git a/ServerManagement/Components/Pages/Wizards/SetServerName.razor b/ServerManagement/Components/Pages/Wizards/SetServerName.razor new file mode 100644 index 0000000..872243e --- /dev/null +++ b/ServerManagement/Components/Pages/Wizards/SetServerName.razor @@ -0,0 +1,42 @@ +@page "/servername" + +@inject NavigationManager NavigationManager + +

Server Name

+
+ +@if (!string.IsNullOrWhiteSpace(errorMessage)) +{ +
+ @errorMessage +
+} + + + + + + +
+ + +@code { + private string? errorMessage; + private string? serverName; + + protected override void OnInitialized() + { + base.OnInitialized(); + } + + private void GoNext() + { + if (string.IsNullOrWhiteSpace(serverName)) + { + this.errorMessage = "Server name is required."; + return; + } + + NavigationManager.NavigateTo($"/cityname?servername={serverName}"); + } +} \ No newline at end of file diff --git a/ServerManagement/Components/Pages/Wizards/SetStatus.razor b/ServerManagement/Components/Pages/Wizards/SetStatus.razor new file mode 100644 index 0000000..3c4ebd2 --- /dev/null +++ b/ServerManagement/Components/Pages/Wizards/SetStatus.razor @@ -0,0 +1,76 @@ +@page "/serverstatus" + +@inject NavigationManager NavigationManager + +

Server Status

+
+ +@if (!string.IsNullOrWhiteSpace(errorMessage)) +{ +
+ @errorMessage +
+} + + + + + + +
+ + +@code { + private string? errorMessage; + private bool isOnline; + [SupplyParameterFromQuery] + private string? CityName { get; set; } + + [SupplyParameterFromQuery] + private string? ServerName { get; set; } + + protected override void OnInitialized() + { + base.OnInitialized(); + } + + protected override void OnAfterRender(bool firstRender) + { + if (firstRender) + { + if (string.IsNullOrWhiteSpace(ServerName)) + { + this.errorMessage = "Server name was not provided."; + StateHasChanged(); + } + else if (string.IsNullOrWhiteSpace(CityName)) + { + this.errorMessage = "City name was not provided."; + StateHasChanged(); + } + } + } + + private void Save() + { + if (string.IsNullOrWhiteSpace(ServerName)) + { + this.errorMessage = "Server name is required."; + return; + } + if (string.IsNullOrWhiteSpace(CityName)) + { + this.errorMessage = "City name is required."; + return; + } + + var server = new Server + { + Name = this.ServerName, + City = this.CityName, + IsOnline = this.isOnline + }; + ServersRepository.AddServer(server); + NavigationManager.NavigateTo($"/servers/back_from/{CityName}"); + } +} \ No newline at end of file