@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; string name; int parentid = -1; bool issystem = false; string permissions = ""; string createdby; DateTime createdon; string modifiedby; DateTime modifiedon; PermissionGrid permissiongrid; 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 == null) ? -1 : folder.ParentId.Value; 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(Reload.Site)); } 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); } } }