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.