diff --git a/ServerManagement/Components/Pages/Wizards/SetCityName.razor b/ServerManagement/Components/Pages/Wizards/SetCityName.razor index 1db2cf9..35832ab 100644 --- a/ServerManagement/Components/Pages/Wizards/SetCityName.razor +++ b/ServerManagement/Components/Pages/Wizards/SetCityName.razor @@ -3,7 +3,7 @@ @using ServerManagement.StateStore @inject NavigationManager NavigationManager -@inject SessionStorage sessionStorage +@inject ContainerStorage containerStorage

City Name


@@ -38,16 +38,16 @@ base.OnInitialized(); } - protected override async Task OnAfterRenderAsync(bool firstRender) + protected override void OnAfterRender(bool firstRender) { if (firstRender) { - this.server = await sessionStorage.GetServerAsync(); + this.server = containerStorage.GetServer(); StateHasChanged(); } } - private async Task GoNext() + private void GoNext() { if (server != null) { @@ -57,7 +57,7 @@ } else { - await this.sessionStorage.SetServerAsync(server); + containerStorage.SetServer(server); NavigationManager.NavigateTo($"/serverstatus"); } } diff --git a/ServerManagement/Components/Pages/Wizards/SetServerName.razor b/ServerManagement/Components/Pages/Wizards/SetServerName.razor index 0ea9158..560bc92 100644 --- a/ServerManagement/Components/Pages/Wizards/SetServerName.razor +++ b/ServerManagement/Components/Pages/Wizards/SetServerName.razor @@ -3,7 +3,7 @@ @using ServerManagement.StateStore @inject NavigationManager NavigationManager -@inject SessionStorage sessionStorage +@inject ContainerStorage containerStorage

Server Name


@@ -44,7 +44,7 @@ } } - private async Task GoNext() + private void GoNext() { if (string.IsNullOrWhiteSpace(server?.Name)) { @@ -52,7 +52,7 @@ } else { - await sessionStorage.SetServerAsync(server); + containerStorage.SetServer(server); NavigationManager.NavigateTo($"/cityname"); } } diff --git a/ServerManagement/Components/Pages/Wizards/SetStatus.razor b/ServerManagement/Components/Pages/Wizards/SetStatus.razor index f6995d2..b7ee4d0 100644 --- a/ServerManagement/Components/Pages/Wizards/SetStatus.razor +++ b/ServerManagement/Components/Pages/Wizards/SetStatus.razor @@ -3,7 +3,7 @@ @using ServerManagement.StateStore @inject NavigationManager NavigationManager -@inject SessionStorage sessionStorage +@inject ContainerStorage containerStorage

Server Status


@@ -34,20 +34,20 @@ base.OnInitialized(); } - protected override async Task OnAfterRenderAsync(bool firstRender) + protected override void OnAfterRender(bool firstRender) { if (firstRender) { - this.server = await sessionStorage.GetServerAsync(); + this.server = containerStorage.GetServer(); StateHasChanged(); } } - private async Task Save() + private void Save() { if (server != null) { - await sessionStorage.SetServerAsync(null); + containerStorage.SetServer(null); ServersRepository.AddServer(server); NavigationManager.NavigateTo($"/servers/back_from/{server?.City}"); } diff --git a/ServerManagement/Components/StateStore/ContainerStorage.cs b/ServerManagement/Components/StateStore/ContainerStorage.cs new file mode 100644 index 0000000..1716862 --- /dev/null +++ b/ServerManagement/Components/StateStore/ContainerStorage.cs @@ -0,0 +1,12 @@ +using ServerManagement.Models; + +namespace ServerManagement.StateStore +{ + public class ContainerStorage + { + private Server _server = new Server(); + + public Server GetServer() { return _server; } + public void SetServer(Server? server) { _server = server; } + } +} \ No newline at end of file diff --git a/ServerManagement/Program.cs b/ServerManagement/Program.cs index 7fb926a..5b1a4a1 100644 --- a/ServerManagement/Program.cs +++ b/ServerManagement/Program.cs @@ -9,6 +9,12 @@ builder.Services.AddRazorComponents() builder.Services.AddTransient(); +// Scoped lifespan is the same as the SignalR lifespan. +// Everything stored in the SignalR channel will be lost if that connection is broken. +// This means that the data in there, can only be used for the current user. +// For a WebAssembly, you want to use AddSingleton, so that everything is locally downloaded in the browser. +builder.Services.AddScoped(); + var app = builder.Build(); // Configure the HTTP request pipeline.