@namespace Oqtane.Modules.Admin.Files @using System.IO @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFileService FileService @inject IFolderService FolderService @inject ISettingService SettingService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer
@SharedLocalizer["Cancel"]
@if (_folders != null) {
@SharedLocalizer["Cancel"]
}
@code { private ElementReference form; private bool validated = false; private string _url = string.Empty; private List _folders; private int _folderId = -1; private string _name = ""; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnInitializedAsync() { _folders = await FolderService.GetFoldersAsync(ModuleState.SiteId); if (PageState.QueryString.ContainsKey("id")) { _folderId = int.Parse(PageState.QueryString["id"]); } } private async Task Download() { validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { if (_url == string.Empty || _folderId == -1) { AddModuleMessage(Localizer["Message.Required.UrlFolder"], MessageType.Warning); return; } if (string.IsNullOrEmpty(_name)) { _name = _url.Substring(_url.LastIndexOf("/", StringComparison.Ordinal) + 1); } if (!PageState.Site.UploadableFiles.Split(',').Contains(Path.GetExtension(_name).ToLower().Replace(".", ""))) { AddModuleMessage(Localizer["Message.Download.InvalidExtension"], MessageType.Warning); return; } if (!_name.IsPathOrFileValid()) { AddModuleMessage(Localizer["Message.Required.UrlName"], MessageType.Warning); return; } try { await FileService.UploadFileAsync(_url, _folderId, _name); await logger.LogInformation("File Downloaded Successfully From Url {Url}", _url); AddModuleMessage(Localizer["Success.Download.File"], MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Downloading File From Url {Url} {Error}", _url, ex.Message); AddModuleMessage(Localizer["Error.Download.InvalidUrl"], MessageType.Error); } } else { AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } }