scalability improvements

This commit is contained in:
sbwalker
2024-05-31 16:23:36 -04:00
parent 9a7a534051
commit 06f0cc70b8
12 changed files with 348 additions and 144 deletions

View File

@ -9,6 +9,7 @@ namespace Oqtane.UI
public Alias Alias { get; set; }
public Site Site { get; set; }
public Page Page { get; set; }
public List<Module> Modules { get; set; }
public User User { get; set; }
public Uri Uri { get; set; }
public Route Route { get; set; }
@ -31,10 +32,6 @@ namespace Oqtane.UI
{
get { return Site.Pages; }
}
public List<Module> Modules
{
get { return Site.Modules; }
}
public List<Language> Languages
{
get { return Site.Languages; }

View File

@ -96,6 +96,7 @@
{
Site site = null;
Page page = null;
List<Module> modules = null;
User user = null;
var editmode = false;
var refresh = false;
@ -273,11 +274,21 @@
}
}
// get modules for current page
if (PageState.Modules == null || PageState.Modules.First().PageId != page.PageId)
{
modules = await SiteService.GetModulesAsync(site.SiteId, page.PageId);
}
else
{
modules = PageState.Modules;
}
// load additional metadata for current page
page = ProcessPage(page, site, user, SiteState.Alias);
// load additional metadata for modules
(page, site.Modules) = ProcessModules(page, site.Modules, moduleid, action, (!string.IsNullOrEmpty(page.DefaultContainerType)) ? page.DefaultContainerType : site.DefaultContainerType, SiteState.Alias);
(page, modules) = ProcessModules(page, modules, moduleid, action, (!string.IsNullOrEmpty(page.DefaultContainerType)) ? page.DefaultContainerType : site.DefaultContainerType, SiteState.Alias);
// populate page state (which acts as a client-side cache for subsequent requests)
_pagestate = new PageState
@ -285,6 +296,7 @@
Alias = SiteState.Alias,
Site = site,
Page = page,
Modules = modules,
User = user,
Uri = new Uri(_absoluteUri, UriKind.Absolute),
Route = route,