reorganize SiteRepository methods

This commit is contained in:
sbwalker 2024-02-27 15:19:25 -05:00
parent e7157a8528
commit 1d187f525d
3 changed files with 58 additions and 46 deletions

View File

@ -2,7 +2,6 @@ using Microsoft.Extensions.Caching.Memory;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Oqtane.Extensions

View File

@ -6,18 +6,22 @@ namespace Oqtane.Repository
{
public interface ISiteRepository
{
IEnumerable<Site> GetSites();
// asynchronous methods
Task<IEnumerable<Site>> GetSitesAsync();
Site AddSite(Site site);
Task<Site> AddSiteAsync(Site site);
Site UpdateSite(Site site);
Task<Site> UpdateSiteAsync(Site site);
Site GetSite(int siteId);
Task<Site> GetSiteAsync(int siteId);
Site GetSite(int siteId, bool tracking);
Task<Site> GetSiteAsync(int siteId, bool tracking);
void DeleteSite(int siteId);
Task DeleteSiteAsync(int siteId);
// synchronous methods
IEnumerable<Site> GetSites();
Site AddSite(Site site);
Site UpdateSite(Site site);
Site GetSite(int siteId);
Site GetSite(int siteId, bool tracking);
void DeleteSite(int siteId);
void InitializeSite(Alias alias);
void CreatePages(Site site, List<PageTemplate> pageTemplates, Alias alias);
}

View File

@ -51,15 +51,58 @@ namespace Oqtane.Repository
_logger = logger;
}
public IEnumerable<Site> GetSites()
{
return _db.Site.OrderBy(item => item.Name);
}
// asynchronous methods
public async Task<IEnumerable<Site>> GetSitesAsync()
{
return await _db.Site.OrderBy(item => item.Name).ToListAsync();
}
public async Task<Site> AddSiteAsync(Site site)
{
site.SiteGuid = Guid.NewGuid().ToString();
_db.Site.Add(site);
await _db.SaveChangesAsync();
CreateSite(site);
return site;
}
public async Task<Site> UpdateSiteAsync(Site site)
{
_db.Entry(site).State = EntityState.Modified;
await _db.SaveChangesAsync();
return site;
}
public async Task<Site> GetSiteAsync(int siteId)
{
return await GetSiteAsync(siteId, true);
}
public async Task<Site> GetSiteAsync(int siteId, bool tracking)
{
if (tracking)
{
return await _db.Site.FindAsync(siteId);
}
else
{
return await _db.Site.AsNoTracking().FirstOrDefaultAsync(item => item.SiteId == siteId);
}
}
public async Task DeleteSiteAsync(int siteId)
{
var site = await _db.Site.FindAsync(siteId);
_db.Site.Remove(site);
_db.SaveChanges();
}
// synchronous methods
public IEnumerable<Site> GetSites()
{
return _db.Site.OrderBy(item => item.Name);
}
public Site AddSite(Site site)
{
site.SiteGuid = Guid.NewGuid().ToString();
@ -68,14 +111,6 @@ namespace Oqtane.Repository
CreateSite(site);
return site;
}
public async Task<Site> AddSiteAsync(Site site)
{
site.SiteGuid = Guid.NewGuid().ToString();
_db.Site.Add(site);
await _db.SaveChangesAsync();
CreateSite(site);
return site;
}
public Site UpdateSite(Site site)
{
@ -83,21 +118,11 @@ namespace Oqtane.Repository
_db.SaveChanges();
return site;
}
public async Task<Site> UpdateSiteAsync(Site site)
{
_db.Entry(site).State = EntityState.Modified;
await _db.SaveChangesAsync();
return site;
}
public Site GetSite(int siteId)
{
return GetSite(siteId, true);
}
public async Task<Site> GetSiteAsync(int siteId)
{
return await GetSiteAsync(siteId, true);
}
public Site GetSite(int siteId, bool tracking)
{
@ -110,17 +135,6 @@ namespace Oqtane.Repository
return _db.Site.AsNoTracking().FirstOrDefault(item => item.SiteId == siteId);
}
}
public async Task<Site> GetSiteAsync(int siteId, bool tracking)
{
if (tracking)
{
return await _db.Site.FindAsync(siteId);
}
else
{
return await _db.Site.AsNoTracking().FirstOrDefaultAsync(item => item.SiteId == siteId);
}
}
public void DeleteSite(int siteId)
{
@ -128,12 +142,7 @@ namespace Oqtane.Repository
_db.Site.Remove(site);
_db.SaveChanges();
}
public async Task DeleteSiteAsync(int siteId)
{
var site = await _db.Site.FindAsync(siteId);
_db.Site.Remove(site);
_db.SaveChanges();
}
public void InitializeSite(Alias alias)
{