performance improvements to reduce http and database interactions

This commit is contained in:
Shaun Walker
2022-08-12 16:47:51 -04:00
parent 4cae3f02ed
commit 3c6ebd7742
9 changed files with 163 additions and 30 deletions

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Xml.Linq;
using Oqtane.Models;
namespace Oqtane.UI
@ -8,11 +9,8 @@ namespace Oqtane.UI
{
public Alias Alias { get; set; }
public Site Site { get; set; }
public List<Language> Languages { get; set; }
public List<Page> Pages { get; set; }
public Page Page { get; set; }
public User User { get; set; }
public List<Module> Modules { get; set; }
public Uri Uri { get; set; }
public Dictionary<string, string> QueryString { get; set; }
public string UrlParameters { get; set; }
@ -24,5 +22,18 @@ namespace Oqtane.UI
public int VisitorId { get; set; }
public string RemoteIPAddress { get; set; }
public string ReturnUrl { get; set; }
public List<Page> Pages
{
get { return Site.Pages; }
}
public List<Module> Modules
{
get { return Site.Modules; }
}
public List<Language> Languages
{
get { return Site.Languages; }
}
}
}

View File

@ -7,10 +7,8 @@
@inject INavigationInterception NavigationInterception
@inject ISyncService SyncService
@inject ISiteService SiteService
@inject ILanguageService LanguageService
@inject IPageService PageService
@inject IUserService UserService
@inject IModuleService ModuleService
@inject IUrlMappingService UrlMappingService
@inject ILogService LogService
@inject IJSRuntime JSRuntime
@ -181,14 +179,13 @@
if (PageState == null || refresh == UI.Refresh.Site)
{
languages = await LanguageService.GetLanguagesAsync(site.SiteId);
pages = await PageService.GetPagesAsync(site.SiteId);
pages = pages.Where(item => !item.IsDeleted).ToList();
pages = site.Pages.Where(item => !item.IsDeleted).ToList();
languages = site.Languages;
}
else
{
languages = PageState.Languages;
pages = PageState.Pages;
languages = PageState.Languages;
}
if (PageState == null || refresh == UI.Refresh.Site)
@ -226,8 +223,7 @@
if (PageState == null || refresh == UI.Refresh.Site)
{
modules = await ModuleService.GetModulesAsync(site.SiteId);
modules = modules.Where(item => !item.IsDeleted).ToList();
modules = site.Modules.Where(item => !item.IsDeleted).ToList();
}
else
{
@ -240,11 +236,8 @@
{
Alias = SiteState.Alias,
Site = site,
Languages = languages,
Pages = pages,
Page = page,
User = user,
Modules = modules,
Uri = new Uri(_absoluteUri, UriKind.Absolute),
QueryString = querystring,
UrlParameters = route.UrlParameters,