@namespace Oqtane.Modules.Admin.RecycleBin @inherits ModuleBase @inject NavigationManager NavigationManager @inject IPageModuleService PageModuleService @inject IModuleService ModuleService @inject IPageService PageService
@if (pages == null) {

No Deleted Pages

} else {
    Name Deleted By Deleted On
@context.Name @context.DeletedBy @context.DeletedOn
}
@if (modules == null) {

No Deleted Modules

} else {
    Page Module Deleted By Deleted On
@PageState.Pages.Find(item => item.PageId == context.PageId).Name @context.Title @context.DeletedBy @context.DeletedOn
}
@code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } List pages; List modules; protected override async Task OnInitializedAsync() { try { await Load(); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Deleted Pages Or Modules {Error}", ex.Message); AddModuleMessage("Error Loading Deleted Pages Or Modules", MessageType.Error); } } private async Task Load() { pages = await PageService.GetPagesAsync(PageState.Site.SiteId); pages = pages.Where(item => item.IsDeleted).ToList(); modules = await ModuleService.GetModulesAsync(PageState.Site.SiteId); modules = modules.Where(item => item.IsDeleted).ToList(); } private async Task RestorePage(Page Page) { try { Page.IsDeleted = false; await PageService.UpdatePageAsync(Page); await logger.LogInformation("Page Restored {Page}", Page); await Load(); StateHasChanged(); NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); } catch (Exception ex) { await logger.LogError(ex, "Error Restoring Deleted Page {Page} {Error}", Page, ex.Message); AddModuleMessage("Error Restoring Deleted Page", MessageType.Error); } } private async Task DeletePage(Page Page) { try { await PageService.DeletePageAsync(Page.PageId); await logger.LogInformation("Page Permanently Deleted {Page}", Page); await Load(); StateHasChanged(); NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); } catch (Exception ex) { await logger.LogError(ex, "Error Permanently Deleting Page {Page} {Error}", Page, ex.Message); AddModuleMessage(ex.Message, MessageType.Error); } } private async Task RestoreModule(Module Module) { try { PageModule pagemodule = await PageModuleService.GetPageModuleAsync(Module.PageModuleId); pagemodule.IsDeleted = false; await PageModuleService.UpdatePageModuleAsync(pagemodule); await logger.LogInformation("Module Restored {Module}", Module); await Load(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Restoring Deleted Module {Module} {Error}", Module, ex.Message); AddModuleMessage("Error Restoring Deleted Module", MessageType.Error); } } private async Task DeleteModule(Module Module) { try { 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("Module Permanently Deleted {Module}", Module); await Load(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Permanently Deleting Module {Module} {Error}", Module, ex.Message); AddModuleMessage("Error Permanently Deleting Module", MessageType.Error); } } }