From 7205246718c1a93bb875a5cfd0b549dc47b7abb8 Mon Sep 17 00:00:00 2001 From: Leigh Pointer Date: Wed, 3 Mar 2021 13:25:49 +0100 Subject: [PATCH] Added Delete all pages and modules --- .../Modules/Admin/RecycleBin/Index.razor | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor b/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor index 2d81476a..c26f852b 100644 --- a/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor +++ b/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor @@ -31,6 +31,9 @@ @context.DeletedOn +
+ +
} @@ -59,6 +62,10 @@ @context.DeletedOn +
+ +
+ }
@@ -69,6 +76,22 @@ public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; + protected string IsDeleteAllPagesVisible + { + get + { + return _pages.Count == 0 ? "hidden" : "visible"; + } + } + + protected string IsDeleteAllModulesVisible + { + get { + return _modules.Count == 0 ? "hidden" : "visible" ; + } + } + + protected override async Task OnInitializedAsync() { try @@ -126,6 +149,28 @@ } } + private async Task DeleteAllPages() + { + try + { + foreach (Page page in _pages) + { + await PageService.DeletePageAsync(page.PageId); + await logger.LogInformation("Page Permanently Deleted {Page}", page); + } + + await logger.LogInformation("Pages Permanently Deleted"); + await Load(); + StateHasChanged(); + NavigationManager.NavigateTo(NavigateUrl()); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Permanently Deleting Pages {Error}", ex.Message); + AddModuleMessage(ex.Message, MessageType.Error); + } + } + private async Task RestoreModule(Module module) { try @@ -167,4 +212,31 @@ AddModuleMessage(Localizer["Error Permanently Deleting Module"], MessageType.Error); } } + + private async Task DeleteAllModules() + { + try + { + foreach (Module module in _modules) + { + await PageModuleService.DeletePageModuleAsync(module.PageModuleId); + // check if there are any remaining module instances in the site + _modules = await ModuleService.GetModulesAsync(PageState.Site.SiteId); + + if (!_modules.Exists(item => item.ModuleId == module.ModuleId)) + { + await ModuleService.DeleteModuleAsync(module.ModuleId); + } + } + + await logger.LogInformation("Modules Permanently Deleted"); + await Load(); + StateHasChanged(); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Permanently Deleting Modules {Error}", ex.Message); + AddModuleMessage(Localizer["Error Permanently Deleting Modules"], MessageType.Error); + } + } }