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

@Localizer["NoPage.Deleted"]

} else {
    @SharedLocalizer["Name"] @Localizer["DeletedBy"] @Localizer["DeletedOn"]
@context.Name @context.DeletedBy @context.DeletedOn
@if (_pages.Any()) {
} }
@if (_modules == null) {

@Localizer["NoModule.Deleted"]

} else {
    @Localizer["Page"] @Localizer["Module"] @Localizer["DeletedBy"] @Localizer["DeletedOn"]
@PageState.Pages.Find(item => item.PageId == context.PageId).Name @context.Title @context.DeletedBy @context.DeletedOn
@if (_modules.Any()) {
} }
@code { private List _pages; private List _modules; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; 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(Localizer["Error.DeletedModulePage.Load"], 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()); } catch (Exception ex) { await logger.LogError(ex, "Error Restoring Deleted Page {Page} {Error}", page, ex.Message); AddModuleMessage(Localizer["Error.Page.Restore"], 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()); } catch (Exception ex) { await logger.LogError(ex, "Error Permanently Deleting Page {Page} {Error}", page, ex.Message); AddModuleMessage(ex.Message, MessageType.Error); } } 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 { var 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(Localizer["Error.Module.Restore"], 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(Localizer["Error.Module.Delete"], 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.Modules.Delete"], MessageType.Error); } } }