Added Delete all pages and modules

This commit is contained in:
Leigh Pointer 2021-03-03 13:25:49 +01:00
parent cccb0806e1
commit 7205246718

View File

@ -31,6 +31,9 @@
<td>@context.DeletedOn</td>
</Row>
</Pager>
<div style="text-align:right; visibility : @IsDeleteAllPagesVisible">
<ActionDialog Header="Delete All Pages" Message="@Localizer["Are You Sure You Wish To Permanently Delete All Pages?", "Delete All Pages"]" Action="Delete All Pages" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteAllPages())" ResourceKey="DeleteAllPages" />
</div>
}
</TabPanel>
<TabPanel Name="Modules" ResourceKey="Modules">
@ -59,6 +62,10 @@
<td>@context.DeletedOn</td>
</Row>
</Pager>
<div style="text-align:right; visibility : @IsDeleteAllModulesVisible" >
<ActionDialog Header="Delete All Modules" Message="@Localizer["Are You Sure You Wish To Permanently Delete All Modules?", "Delete All Modules"]" Action="Delete All Modules" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteAllModules())" ResourceKey="DeleteAllModules" />
</div>
}
</TabPanel>
</TabStrip>
@ -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);
}
}
}