diff --git a/Oqtane.Server/Repository/ModuleRepository.cs b/Oqtane.Server/Repository/ModuleRepository.cs index 2754161c..f9a71d29 100644 --- a/Oqtane.Server/Repository/ModuleRepository.cs +++ b/Oqtane.Server/Repository/ModuleRepository.cs @@ -64,7 +64,7 @@ namespace Oqtane.Repository public void DeleteModule(int ModuleId) { Module Module = db.Module.Find(ModuleId); - Permissions.UpdatePermissions(Module.SiteId, "Module", ModuleId, ""); + Permissions.DeletePermissions(Module.SiteId, "Module", ModuleId); db.Module.Remove(Module); db.SaveChanges(); } diff --git a/Oqtane.Server/Repository/PageRepository.cs b/Oqtane.Server/Repository/PageRepository.cs index 5b849d1b..c2a7fff1 100644 --- a/Oqtane.Server/Repository/PageRepository.cs +++ b/Oqtane.Server/Repository/PageRepository.cs @@ -9,11 +9,15 @@ namespace Oqtane.Repository { private TenantDBContext db; private readonly IPermissionRepository Permissions; + private readonly IPageModuleRepository PageModules; + private readonly IModuleRepository ModuleRepository; - public PageRepository(TenantDBContext context, IPermissionRepository Permissions) + public PageRepository(TenantDBContext context, IPermissionRepository Permissions, IPageModuleRepository PageModules, IModuleRepository ModuleRepository) { db = context; this.Permissions = Permissions; + this.PageModules = PageModules; + this.ModuleRepository = ModuleRepository; } public IEnumerable GetPages() @@ -62,7 +66,21 @@ namespace Oqtane.Repository public void DeletePage(int PageId) { Page Page = db.Page.Find(PageId); - Permissions.UpdatePermissions(Page.SiteId, "Page", PageId, ""); + + IEnumerable pageModules = db.PageModule.Where(item => item.PageId == PageId).ToList(); + foreach (var pageModule in pageModules) + { + PageModules.DeletePageModule(pageModule.PageModuleId); + + IEnumerable modules = db.Module.Where(item => item.ModuleId == pageModule.ModuleId).ToList(); + foreach (var module in modules) + { + ModuleRepository.DeleteModule(module.ModuleId); + } + } + + Permissions.DeletePermissions(Page.SiteId, "Page", PageId); + db.Page.Remove(Page); db.SaveChanges(); }