@namespace Oqtane.Modules.Admin.Files @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFolderService FolderService @inject IFileService FileService @inject ISettingService SettingService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_files == null) {

@SharedLocalizer["Loading"]

} else {
@Localizer["Folder"]:  
@if (_files.Count != 0) {
    @SharedLocalizer["Name"] @Localizer["Modified"] @Localizer["Type"] @Localizer["Size"]
@context.Name @context.ModifiedOn @context.Extension.ToUpper() @SharedLocalizer["File"] @string.Format("{0:0.00}", ((decimal)context.Size / 1000)) KB
} else {
@Localizer["NoFiles"]
}

} @code { private List _folders; private int _folderId = -1; private List _files; private string _imageFiles = string.Empty; private string _uploadableFiles = string.Empty; private int _maxChunkSize = 1; 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(); } var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); _imageFiles = SettingService.GetSetting(settings, "ImageFiles", Constants.ImageFiles); _imageFiles = (string.IsNullOrEmpty(_imageFiles)) ? Constants.ImageFiles : _imageFiles; _uploadableFiles = SettingService.GetSetting(settings, "UploadableFiles", Constants.UploadableFiles); _uploadableFiles = (string.IsNullOrEmpty(_uploadableFiles)) ? Constants.UploadableFiles : _uploadableFiles; _maxChunkSize = int.Parse(SettingService.GetSetting(settings, "MaxChunkSize", "1")); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Files {Error}", ex.Message); AddModuleMessage(Localizer["Error.File.Load"], 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.File.Load"], MessageType.Error); } } private async Task DeleteFile(File file) { try { await FileService.DeleteFileAsync(file.FileId); await logger.LogInformation("File Deleted {File}", file.Name); AddModuleMessage(string.Format(Localizer["Success.File.Delete"], file.Name), MessageType.Success); await GetFiles(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Deleting File {File} {Error}", file.Name, ex.Message); AddModuleMessage(string.Format(Localizer["Error.File.Delete"], file.Name), MessageType.Error); } } private async Task SaveSiteSettings() { try { var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); settings = SettingService.SetSetting(settings, "ImageFiles", (_imageFiles != Constants.ImageFiles) ? _imageFiles.Replace(" ", "") : "", false); settings = SettingService.SetSetting(settings, "UploadableFiles", (_uploadableFiles != Constants.UploadableFiles) ? _uploadableFiles.Replace(" ", "") : "", false); settings = SettingService.SetSetting(settings, "MaxChunkSize", _maxChunkSize.ToString(), false); await SettingService.UpdateSiteSettingsAsync(settings, PageState.Site.SiteId); AddModuleMessage(Localizer["Success.SaveSiteSettings"], MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Site Settings {Error}", ex.Message); AddModuleMessage(Localizer["Error.SaveSiteSettings"], MessageType.Error); } } }