1
0

Replace SessionStorage with ContainerStorage.

This is retained on the SignalR connection and is unique to the user.
This commit is contained in:
Kevin Matsubara 2025-03-30 22:32:22 +02:00
parent a25e767b29
commit 734a59f38b
5 changed files with 31 additions and 13 deletions

View File

@ -3,7 +3,7 @@
@using ServerManagement.StateStore
@inject NavigationManager NavigationManager
@inject SessionStorage sessionStorage
@inject ContainerStorage containerStorage
<h3>City Name</h3>
<br/>
@ -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");
}
}

View File

@ -3,7 +3,7 @@
@using ServerManagement.StateStore
@inject NavigationManager NavigationManager
@inject SessionStorage sessionStorage
@inject ContainerStorage containerStorage
<h3>Server Name</h3>
<br/>
@ -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");
}
}

View File

@ -3,7 +3,7 @@
@using ServerManagement.StateStore
@inject NavigationManager NavigationManager
@inject SessionStorage sessionStorage
@inject ContainerStorage containerStorage
<h3>Server Status</h3>
<br/>
@ -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}");
}

View File

@ -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; }
}
}

View File

@ -9,6 +9,12 @@ builder.Services.AddRazorComponents()
builder.Services.AddTransient<SessionStorage>();
// 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<ContainerStorage>();
var app = builder.Build();
// Configure the HTTP request pipeline.