@namespace Oqtane.Modules.Admin.Files @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFolderService FolderService @inject IFileService FileService @inject IStringLocalizer Localizer @if (_files != null) {
   
    @Localizer["Name"] @Localizer["Modified"] @Localizer["Type"] @Localizer["Size"]
@context.Name @context.ModifiedOn @context.Extension.ToUpper() @Localizer["File"] @string.Format("{0:0.00}", ((decimal)context.Size / 1000)) KB
@if (_files.Count == 0) {
@Localizer["No Files Exist In Selected Folder"]
} } @code { private List _folders; private int _folderId = -1; private List _files; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnParametersSetAsync() { try { _folders = await FolderService.GetFoldersAsync(PageState.Site.SiteId); if (_folderId == -1 && _folders.Count > 0) { _folderId = _folders[0].FolderId; await GetFiles(); } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Files {Error}", ex.Message); AddModuleMessage(Localizer["Error Loading Files"], MessageType.Error); } } private async Task GetFiles() { _files = await FileService.GetFilesAsync(_folderId); } private async void FolderChanged(ChangeEventArgs e) { try { _folderId = int.Parse((string)e.Value); await GetFiles(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Files {Error}", ex.Message); AddModuleMessage(Localizer["Error Loading Files"], MessageType.Error); } } private async Task DeleteFile(File file) { try { await FileService.DeleteFileAsync(file.FileId); await logger.LogInformation("File Deleted {File}", file.Name); AddModuleMessage(Localizer["File {0} Deleted", file.Name], MessageType.Success); await GetFiles(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Deleting File {File} {Error}", file.Name, ex.Message); AddModuleMessage(Localizer["Error Deleting File {0}", file.Name], MessageType.Error); } } }