Fix UpdatePermissions instead of DeletePermissions in DeletePage and DeleteModule

Improve Page Delete to remove even modules, permissiones and pagemodules
This commit is contained in:
Emanuele Filardo 2019-10-12 17:21:42 +02:00
parent f19428d359
commit 0c384249bf
2 changed files with 21 additions and 3 deletions

View File

@ -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();
}

View File

@ -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<Page> 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<PageModule> pageModules = db.PageModule.Where(item => item.PageId == PageId).ToList();
foreach (var pageModule in pageModules)
{
PageModules.DeletePageModule(pageModule.PageModuleId);
IEnumerable<Module> 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();
}