From dd0ee9bdb8644a9af2ae0ca2703261083b8769f2 Mon Sep 17 00:00:00 2001 From: Rockford lhotka Date: Mon, 25 Mar 2024 23:08:56 -0500 Subject: [PATCH] #2551 Update for latest CSLA prerelease; use updated Blazor state management --- .../Controllers/CslaStateController.cs | 3 -- .../ProjectTracker.AppServer.csproj | 2 +- .../Pages/EditProject.razor | 37 +++++++------------ .../Pages/Projects.razor | 1 - .../Pages/Resources.razor | 1 - .../ProjectTracker.Blazor.Client.csproj | 4 +- .../Components/Pages/Home.razor | 1 - .../Controllers/CslaStateController.cs | 6 +-- .../ProjectTracker.Blazor.csproj | 4 +- .../ProjectTracker.BusinessLibrary.csproj | 2 +- .../ProjectTracker.Dal.csproj | 2 +- .../ProjectTracker.DalMock.csproj | 2 +- 12 files changed, 23 insertions(+), 42 deletions(-) diff --git a/Samples/ProjectTracker/ProjectTracker.AppServer/Controllers/CslaStateController.cs b/Samples/ProjectTracker/ProjectTracker.AppServer/Controllers/CslaStateController.cs index d55403166d..29323cad0a 100644 --- a/Samples/ProjectTracker/ProjectTracker.AppServer/Controllers/CslaStateController.cs +++ b/Samples/ProjectTracker/ProjectTracker.AppServer/Controllers/CslaStateController.cs @@ -15,8 +15,5 @@ namespace ProjectTracker.AppServer.Controllers public class CslaStateController(ApplicationContext applicationContext, ISessionManager sessionManager) : Csla.AspNetCore.Blazor.State.StateController(applicationContext, sessionManager) { - public override byte[] Get() => base.Get(); - - public override void Put(byte[] updatedSessionData) => base.Put(updatedSessionData); } } \ No newline at end of file diff --git a/Samples/ProjectTracker/ProjectTracker.AppServer/ProjectTracker.AppServer.csproj b/Samples/ProjectTracker/ProjectTracker.AppServer/ProjectTracker.AppServer.csproj index 7ad5627b8c..42faed1935 100644 --- a/Samples/ProjectTracker/ProjectTracker.AppServer/ProjectTracker.AppServer.csproj +++ b/Samples/ProjectTracker/ProjectTracker.AppServer/ProjectTracker.AppServer.csproj @@ -7,7 +7,7 @@ - + diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/EditProject.razor b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/EditProject.razor index 7d927fe3a6..802f7ff48d 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/EditProject.razor +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/EditProject.razor @@ -2,10 +2,10 @@ @page "/editproject/{id:int}" @using Microsoft.AspNetCore.Components.Authorization @rendermode InteractiveAuto -@implements IDisposable /* CSLA wasm pages must be IDisposable */ @inject NavigationManager NavigationManager @inject Csla.Blazor.State.StateManager StateManager +@inject ProjectTracker.Blazor.RenderModeProvider renderModeProvider @inject Csla.IDataPortal projectEditPortal @inject Csla.Blazor.ViewModel vm @inject Csla.ApplicationContext ApplicationContext @@ -20,12 +20,12 @@ @if (!IsInteractive) {

Edit Project

-

Loading Blazor wasm runtime...

+

Loading app...

} else if (vm.Model == null) {

Edit Project

-

Loading...

+

Loading data...

} else { @@ -175,21 +175,18 @@ else vm.Saved += () => NavigationManager.NavigateTo("projects"); vm.ModelPropertyChanged += async (s, e) => await InvokeAsync(() => StateHasChanged()); - } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - IsInteractive = true; - if (Id.HasValue) - await vm.RefreshAsync(() => projectEditPortal.FetchAsync(Id)); - else - await vm.RefreshAsync(() => projectEditPortal.CreateAsync()); - - RoleList = await roleListPortal.FetchAsync(); - StateHasChanged(); - } + var renderMode = renderModeProvider.GetRenderMode(this); + if (renderMode == RenderModes.WasmInteractive || renderMode == RenderModes.ServerInteractive) + { + IsInteractive = true; + if (Id.HasValue) + await vm.RefreshAsync(() => projectEditPortal.FetchAsync(Id)); + else + await vm.RefreshAsync(() => projectEditPortal.CreateAsync()); + + RoleList = await roleListPortal.FetchAsync(); + } } private async Task SelectResource() @@ -241,10 +238,4 @@ else { vm.Model.Resources.Remove(resourceId); } - - public void Dispose() - { - // wasm pages _must_ save state back to server - StateManager.SaveState(); - } } \ No newline at end of file diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Projects.razor b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Projects.razor index eb4902147f..62cba91001 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Projects.razor +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Projects.razor @@ -1,5 +1,4 @@ @page "/projects" -@attribute [StreamRendering] /* server-static pages must be streaming */ @using ProjectTracker.Library @inject Csla.Blazor.State.StateManager StateManager diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Resources.razor b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Resources.razor index 6d82889dac..2200a51a2a 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Resources.razor +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/Pages/Resources.razor @@ -1,5 +1,4 @@ @page "/resources" -@attribute [StreamRendering] /* server-static pages must be streaming */ @using ProjectTracker.Library @inject Csla.Blazor.State.StateManager StateManager diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/ProjectTracker.Blazor.Client.csproj b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/ProjectTracker.Blazor.Client.csproj index 97590c5755..25c3cb2e48 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/ProjectTracker.Blazor.Client.csproj +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor.Client/ProjectTracker.Blazor.Client.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Components/Pages/Home.razor b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Components/Pages/Home.razor index ab4670f6ea..83f766ce86 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Components/Pages/Home.razor +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Components/Pages/Home.razor @@ -1,5 +1,4 @@ @page "/" -@attribute [StreamRendering] /* server-static pages must be streaming */ @inject Csla.Blazor.State.StateManager StateManager Project Tracker diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Controllers/CslaStateController.cs b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Controllers/CslaStateController.cs index fd17ae5039..b483563bc7 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Controllers/CslaStateController.cs +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/Controllers/CslaStateController.cs @@ -14,9 +14,5 @@ namespace ProjectTracker.Blazor.Controllers [Route("[controller]")] public class CslaStateController(ApplicationContext applicationContext, ISessionManager sessionManager) : Csla.AspNetCore.Blazor.State.StateController(applicationContext, sessionManager) - { - public override byte[] Get() => base.Get(); - - public override void Put(byte[] updatedSessionData) => base.Put(updatedSessionData); - } + { } } \ No newline at end of file diff --git a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/ProjectTracker.Blazor.csproj b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/ProjectTracker.Blazor.csproj index 869a4bf14c..e21537a753 100644 --- a/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/ProjectTracker.Blazor.csproj +++ b/Samples/ProjectTracker/ProjectTracker.Blazor/ProjectTracker.Blazor/ProjectTracker.Blazor.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/Samples/ProjectTracker/ProjectTracker.BusinessLibrary/ProjectTracker.BusinessLibrary.csproj b/Samples/ProjectTracker/ProjectTracker.BusinessLibrary/ProjectTracker.BusinessLibrary.csproj index 476bba5b87..c78517f5d1 100644 --- a/Samples/ProjectTracker/ProjectTracker.BusinessLibrary/ProjectTracker.BusinessLibrary.csproj +++ b/Samples/ProjectTracker/ProjectTracker.BusinessLibrary/ProjectTracker.BusinessLibrary.csproj @@ -7,7 +7,7 @@ - + diff --git a/Samples/ProjectTracker/ProjectTracker.Dal/ProjectTracker.Dal.csproj b/Samples/ProjectTracker/ProjectTracker.Dal/ProjectTracker.Dal.csproj index b37b64d289..30feed3a8c 100644 --- a/Samples/ProjectTracker/ProjectTracker.Dal/ProjectTracker.Dal.csproj +++ b/Samples/ProjectTracker/ProjectTracker.Dal/ProjectTracker.Dal.csproj @@ -7,7 +7,7 @@ - + diff --git a/Samples/ProjectTracker/ProjectTracker.DalMock/ProjectTracker.DalMock.csproj b/Samples/ProjectTracker/ProjectTracker.DalMock/ProjectTracker.DalMock.csproj index aa2ce9b484..a9e529bddf 100644 --- a/Samples/ProjectTracker/ProjectTracker.DalMock/ProjectTracker.DalMock.csproj +++ b/Samples/ProjectTracker/ProjectTracker.DalMock/ProjectTracker.DalMock.csproj @@ -7,7 +7,7 @@ - +