diff --git a/Oqtane.Server/Controllers/SiteController.cs b/Oqtane.Server/Controllers/SiteController.cs index 23b5c4d7..dc8361ec 100644 --- a/Oqtane.Server/Controllers/SiteController.cs +++ b/Oqtane.Server/Controllers/SiteController.cs @@ -87,8 +87,15 @@ namespace Oqtane.Controllers [Authorize(Roles = Constants.HostRole)] public void Delete(int id) { - Sites.DeleteSite(id); - logger.Log(LogLevel.Information, this, LogFunction.Delete, "Site Deleted {SiteId}", id); + if (Sites.GetSites().Count() > 1) + { + Sites.DeleteSite(id); + logger.Log(LogLevel.Information, this, LogFunction.Delete, "Site Deleted {SiteId}", id); + } + else + { + logger.Log(LogLevel.Warning, this, LogFunction.Delete, "Unable to delete the root site."); + } } } } diff --git a/Oqtane.Server/Repository/SiteRepository.cs b/Oqtane.Server/Repository/SiteRepository.cs index d206c763..6c569863 100644 --- a/Oqtane.Server/Repository/SiteRepository.cs +++ b/Oqtane.Server/Repository/SiteRepository.cs @@ -142,10 +142,13 @@ namespace Oqtane.Repository } public void DeleteSite(int siteId) - { - Site site = db.Site.Find(siteId); - db.Site.Remove(site); - db.SaveChanges(); + { + if (db.Site.Count() > 1) + { + var site = db.Site.Find(siteId); + db.Site.Remove(site); + db.SaveChanges(); + } } private void CreateSite(Site site)