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;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Oqtane.Extensions namespace Oqtane.Extensions

View File

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

View File

@ -51,15 +51,58 @@ namespace Oqtane.Repository
_logger = logger; _logger = logger;
} }
public IEnumerable<Site> GetSites() // asynchronous methods
{
return _db.Site.OrderBy(item => item.Name);
}
public async Task<IEnumerable<Site>> GetSitesAsync() public async Task<IEnumerable<Site>> GetSitesAsync()
{ {
return await _db.Site.OrderBy(item => item.Name).ToListAsync(); 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) public Site AddSite(Site site)
{ {
site.SiteGuid = Guid.NewGuid().ToString(); site.SiteGuid = Guid.NewGuid().ToString();
@ -68,14 +111,6 @@ namespace Oqtane.Repository
CreateSite(site); CreateSite(site);
return 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) public Site UpdateSite(Site site)
{ {
@ -83,21 +118,11 @@ namespace Oqtane.Repository
_db.SaveChanges(); _db.SaveChanges();
return site; 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) public Site GetSite(int siteId)
{ {
return GetSite(siteId, true); return GetSite(siteId, true);
} }
public async Task<Site> GetSiteAsync(int siteId)
{
return await GetSiteAsync(siteId, true);
}
public Site GetSite(int siteId, bool tracking) public Site GetSite(int siteId, bool tracking)
{ {
@ -110,17 +135,6 @@ namespace Oqtane.Repository
return _db.Site.AsNoTracking().FirstOrDefault(item => item.SiteId == siteId); 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) public void DeleteSite(int siteId)
{ {
@ -128,12 +142,7 @@ namespace Oqtane.Repository
_db.Site.Remove(site); _db.Site.Remove(site);
_db.SaveChanges(); _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) public void InitializeSite(Alias alias)
{ {