Replace SessionStorage with ContainerStorage.
This is retained on the SignalR connection and is unique to the user.
This commit is contained in:
parent
a25e767b29
commit
734a59f38b
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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}");
|
||||
}
|
||||
|
||||
12
ServerManagement/Components/StateStore/ContainerStorage.cs
Normal file
12
ServerManagement/Components/StateStore/ContainerStorage.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
@ -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.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user