replace Task.Run() logic in SiteService with async SiteRepository methods

This commit is contained in:
sbwalker
2024-02-27 15:12:48 -05:00
parent e2182344a2
commit e7157a8528
4 changed files with 99 additions and 31 deletions

View File

@ -55,37 +55,35 @@ namespace Oqtane.Services
List<Site> sites = new List<Site>();
if (_accessor.HttpContext.User.IsInRole(RoleNames.Host))
{
sites = _sites.GetSites().OrderBy(item => item.Name).ToList();
sites = (await _sites.GetSitesAsync()).ToList();
}
return await Task.Run(() => sites);
return sites;
}
public async Task<Site> GetSiteAsync(int siteId)
{
Site site = null;
if (!_accessor.HttpContext.User.Identity.IsAuthenticated)
{
site = _cache.GetOrCreate($"site:{_accessor.HttpContext.GetAlias().SiteKey}", entry =>
return await _cache.GetOrCreateAsync($"site:{_accessor.HttpContext.GetAlias().SiteKey}", async entry =>
{
entry.SlidingExpiration = TimeSpan.FromMinutes(30);
return GetSite(siteId);
return await GetSite(siteId);
}, true);
}
else // authenticated - cached per user
{
site = _cache.GetOrCreate($"site:{_accessor.HttpContext.GetAlias().SiteKey}:{_accessor.HttpContext.User.UserId}", entry =>
return await _cache.GetOrCreateAsync($"site:{_accessor.HttpContext.GetAlias().SiteKey}:{_accessor.HttpContext.User.UserId}", async entry =>
{
entry.SlidingExpiration = TimeSpan.FromMinutes(30);
return GetSite(siteId);
return await GetSite(siteId);
}, true);
}
return await Task.Run(() => site);
}
private Site GetSite(int siteid)
private async Task<Site> GetSite(int siteid)
{
var alias = _tenantManager.GetAlias();
var site = _sites.GetSite(siteid);
var site = await _sites.GetSiteAsync(siteid);
if (site != null && site.SiteId == alias.SiteId)
{
// site settings
@ -184,7 +182,7 @@ namespace Oqtane.Services
{
if (_accessor.HttpContext.User.IsInRole(RoleNames.Host))
{
site = _sites.AddSite(site);
site = await _sites.AddSiteAsync(site);
_syncManager.AddSyncEvent(_tenantManager.GetAlias(), EntityNames.Site, site.SiteId, SyncEventActions.Create);
_logger.Log(site.SiteId, LogLevel.Information, this, LogFunction.Create, "Site Added {Site}", site);
}
@ -192,7 +190,7 @@ namespace Oqtane.Services
{
site = null;
}
return await Task.Run(() => site);
return site;
}
public async Task<Site> UpdateSiteAsync(Site site)
@ -200,10 +198,10 @@ namespace Oqtane.Services
if (_accessor.HttpContext.User.IsInRole(RoleNames.Admin))
{
var alias = _tenantManager.GetAlias();
var current = _sites.GetSite(site.SiteId, false);
var current = await _sites.GetSiteAsync(site.SiteId, false);
if (site.SiteId == alias.SiteId && site.TenantId == alias.TenantId && current != null)
{
site = _sites.UpdateSite(site);
site = await _sites.UpdateSiteAsync(site);
_syncManager.AddSyncEvent(alias, EntityNames.Site, site.SiteId, SyncEventActions.Update);
string action = SyncEventActions.Refresh;
if (current.RenderMode != site.RenderMode || current.Runtime != site.Runtime)
@ -223,7 +221,7 @@ namespace Oqtane.Services
{
site = null;
}
return await Task.Run(() => site);
return site;
}
public async Task DeleteSiteAsync(int siteId)
@ -231,10 +229,10 @@ namespace Oqtane.Services
if (_accessor.HttpContext.User.IsInRole(RoleNames.Host))
{
var alias = _tenantManager.GetAlias();
var site = _sites.GetSite(siteId);
var site = await _sites.GetSiteAsync(siteId);
if (site != null && site.SiteId == alias.SiteId)
{
_sites.DeleteSite(siteId);
await _sites.DeleteSiteAsync(siteId);
_syncManager.AddSyncEvent(alias, EntityNames.Site, site.SiteId, SyncEventActions.Delete);
_logger.Log(siteId, LogLevel.Information, this, LogFunction.Delete, "Site Deleted {SiteId}", siteId);
}
@ -243,7 +241,6 @@ namespace Oqtane.Services
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized Site Delete Attempt {SiteId}", siteId);
}
}
await Task.CompletedTask;
}
private static List<Page> GetPagesHierarchy(List<Page> pages)