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

No Deleted Pages

} else {
Name Deleted By Deleted On    
@context.Name @context.DeletedBy @context.DeletedOn
}
@if (pageModules.Count == 0) {

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 { get; set; } List pageModules { get; set; } protected override async Task OnInitializedAsync() { try { pages = new List(); pageModules = new List(); await LoadEntities(); } 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); } } protected override void OnParametersSet() { pages = PageState.Pages.Where(item => item.IsDeleted).ToList(); } private async Task LoadEntities() { pageModules.Clear(); foreach (var module in PageState.Modules.Where(item => item.IsDeleted)) { var pageModule = await PageModuleService.GetPageModuleAsync(module.PageModuleId); pageModules.Add(pageModule); } } private async Task RestorePage(Page Page) { try { Page.IsDeleted = false; await PageService.UpdatePageAsync(Page); await logger.LogInformation("Page Restored {Page}", Page); 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(int PageId) { try { var deletedPageModules = PageState.Modules.Where(item => item.PageId == PageId); await PageService.DeletePageAsync(PageId); foreach (var module in deletedPageModules) { await ModuleService.DeleteModuleAsync(module.ModuleId); } await logger.LogInformation("Page Permanently Deleted {PageId}", PageId); NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); } catch (Exception ex) { await logger.LogError(ex, "Error Permanently Deleting Page {PageId} {Error}", PageId, ex.Message); AddModuleMessage(ex.Message, MessageType.Error); } } private async Task RestorePageModule(PageModule PageModule) { try { PageModule.IsDeleted = false; await PageModuleService.UpdatePageModuleAsync(PageModule); await LoadEntities(); await logger.LogInformation("Page Module Restored {PageModule}", PageModule); NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); } catch (Exception ex) { await logger.LogError(ex, "Error Restoring Deleted Page Module {PageModule} {Error}", PageModule, ex.Message); AddModuleMessage("Error Restoring Deleted Page Module", MessageType.Error); } } private async Task DeletePageModule(int PageModuleId, int ModuleId) { try { await PageModuleService.DeletePageModuleAsync(PageModuleId); if (PageState.Modules.Count(item => item.ModuleId == ModuleId) == 1) { await ModuleService.DeleteModuleAsync(ModuleId); } PageState.Modules.RemoveAt(PageState.Modules.FindIndex(item => item.ModuleId == ModuleId)); await LoadEntities(); await logger.LogInformation("Page Module Permanently Deleted {PageModuleId}", PageModuleId); NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); } catch (Exception ex) { await logger.LogError(ex, "Error Permanently Deleting Page Module {PageModuleId} {Error}", PageModuleId, ex.Message); AddModuleMessage("Error Permanently Deleting Page Module", MessageType.Error); } } }