@namespace Oqtane.Modules.Admin.Files @inherits ModuleBase @inject IFolderService FolderService @inject NavigationManager NavigationManager @if (_folders != null) {
@if (!_isSystem) { } Cancel @if (!_isSystem && PageState.QueryString.ContainsKey("id")) { }

@if (PageState.QueryString.ContainsKey("id")) { } } @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } public override string Title { get { return "Folder Management"; } } List _folders; int _folderId = -1; string _name; int _parentId = -1; bool _isSystem; string _permissions = ""; string _createdBy; DateTime _createdOn; string _modifiedBy; DateTime _modifiedOn; #pragma warning disable 649 PermissionGrid _permissionGrid; #pragma warning restore 649 protected override async Task OnInitializedAsync() { try { _folders = await FolderService.GetFoldersAsync(PageState.Site.SiteId); if (PageState.QueryString.ContainsKey("id")) { _folderId = Int32.Parse(PageState.QueryString["id"]); Folder folder = await FolderService.GetFolderAsync(_folderId); if (folder != null) { _parentId = folder.ParentId ?? -1; _name = folder.Name; _isSystem = folder.IsSystem; _permissions = folder.Permissions; _createdBy = folder.CreatedBy; _createdOn = folder.CreatedOn; _modifiedBy = folder.ModifiedBy; _modifiedOn = folder.ModifiedOn; } } else { _parentId = _folders[0].FolderId; List permissionStrings = new List(); permissionStrings.Add(new PermissionString { PermissionName = "Browse", Permissions = Constants.AdminRole }); permissionStrings.Add(new PermissionString { PermissionName = "View", Permissions = Constants.AdminRole }); permissionStrings.Add(new PermissionString { PermissionName = "Edit", Permissions = Constants.AdminRole }); _permissions = UserSecurity.SetPermissionStrings(permissionStrings); } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Folder {FolderId} {Error}", _folderId, ex.Message); AddModuleMessage("Error Loading Folder", MessageType.Error); } } private async Task SaveFolder() { try { if (_name != "" && _parentId != -1) { Folder folder; if (_folderId != -1) { folder = await FolderService.GetFolderAsync(_folderId); } else { folder = new Folder(); } folder.SiteId = PageState.Site.SiteId; if (_parentId == -1) { folder.ParentId = null; } else { folder.ParentId = _parentId; } folder.Name = _name; folder.IsSystem = _isSystem; folder.Permissions = _permissionGrid.GetPermissions(); if (_folderId != -1) { folder = await FolderService.UpdateFolderAsync(folder); } else { folder = await FolderService.AddFolderAsync(folder); } await FolderService.UpdateFolderOrderAsync(folder.SiteId, folder.FolderId, folder.ParentId); await logger.LogInformation("Folder Saved {Folder}", folder); NavigationManager.NavigateTo(NavigateUrl()); } else { AddModuleMessage("Folders Must Have A Parent And A Name", MessageType.Warning); } } catch (Exception ex) { await logger.LogError(ex, "Error Saving Folder {FolderId} {Error}", _folderId, ex.Message); AddModuleMessage("Error Saving Module", MessageType.Error); } } private async Task DeleteFolder() { try { await FolderService.DeleteFolderAsync(_folderId); await logger.LogInformation("Folder Deleted {Folder}", _folderId); AddModuleMessage("Folder Deleted", MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Deleting Folder {Folder} {Error}", _folderId, ex.Message); AddModuleMessage("Error Deleting Folder", MessageType.Error); } } }