Nucleus .Net Core CMS

Managers.IFileSystemManager Interface

Namespace: Nucleus.Abstractions.Managers
Assembly: Nucleus.Abstractions.dll
Defines the interface for the File System manager.

Remarks

Get an instance of this class from dependency injection by including a parameter in your class constructor.

Methods

GetFolder (Site,String,String) Method

GetFolder (Site site, String providerKey, String path)
Retrieve an existing Models.FileSystem.Folder from the database.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
providerKey String
path String

GetFolder (Site,Guid) Method

GetFolder (Site site, Guid id)
Retrieve an existing Models.FileSystem.Folder from the database.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
id Guid

GetFile (Site,Guid) Method

GetFile (Site site, Guid id)
Retrieve an existing Models.FileSystem.File from the database.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
id Guid

GetFile (Site,String,String) Method

GetFile (Site site, String providerKey, String path)
Retrieve an existing Models.FileSystem.File from the database, or create a new record if none exists.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
providerKey String
path String

GetFileDirectUrl (Site,File) Method

GetFileDirectUrl (Site file, File site)
Get a direct url for the file.
Remarks
Returns null to indicate that a direct url could not be returned for the specified file. Check the file Capabilities.CanDirectLink property to determine whether the file system provider is capable of providing direct links before calling this method.

CreatePermissions (Site,Folder,Role) Method

CreatePermissions (Site site, Folder folder, Role role)
Create/add default permissions to the specified Models.FileSystem.Folder for the specified Models.Role.
Remarks
The new Models.Permissions are not saved unless you call SaveFolderPermissions.

SaveFolder (Site,Folder) Method

SaveFolder (Site site, Folder folder)
Save Models.FileSystem.Folder data to the database.

SaveFolderPermissions (Site,Folder) Method

SaveFolderPermissions (Site site, Folder folder)
Save permissions for the specified Models.FileSystem.Folder.
Remarks
A side-effect of saving folder permissions is that a database record is created for the folder, if one does not already exist.

ListPermissions (Folder) Method

ListPermissions (Folder folder)
List all permissions for the specified folder.
Parameters
Name Type
folder Nucleus.Abstractions.Models.FileSystem.Folder

ListFolderPermissionTypes

ListFolderPermissionTypes ()
Return a list of available permission types, sorted by SortOrder.

CreateFolder (Site,String,String,String) Method

CreateFolder (Site site, String providerKey, String parentPath, String newFolder)
Create a new folder
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
providerKey String
parentPath String
newFolder String

DeleteFolder (Site,Folder,Boolean) Method

DeleteFolder (Site site, Folder folder, Boolean recursive)
Delete an existing folder

RenameFolder (Site,Folder,String) Method

RenameFolder (Site site, Folder folder, String newName)
Rename an existing folder

ListProviders

ListProviders ()
List all available file system providers.

ListFolder (Site,Guid,String) Method

ListFolder (Site site, Guid id, String pattern)
Return a folder with the Folders and Files properties populated.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
id Guid
pattern String

Regular expression which is used to filter file names.

Examples
ListFolder(this.Context.Site, folderId, "(.doc)|(.docx)");

ListFolder (Site,Guid,ClaimsPrincipal,String) Method

ListFolder (Site site, Guid id, ClaimsPrincipal user, String pattern)
Return a folder with the Folders and Files properties populated, checking for user permissions.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
id Guid
user System.Security.Claims.ClaimsPrincipal
pattern String

Regular expression which is used to filter file names.

Examples
ListFolder(this.Context.Site, folderId, "(.doc)|(.docx)");

ListFolder (Site,Guid,String,PagingSettings) Method

ListFolder (Site site, Guid id, String pattern, PagingSettings settings)
Return a paged list of Models.FileSystem.FileSystemItem objects for the specified folder.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
id Guid
pattern String

Regular expression which is used to filter file names.

settings Nucleus.Abstractions.Models.Paging.PagingSettings

Paging settings.

ListFolder (Site,Guid,ClaimsPrincipal,String,PagingSettings) Method

ListFolder (Site site, Guid id, ClaimsPrincipal user, String pattern, PagingSettings settings)
Return a paged list of Models.FileSystem.FileSystemItem objects for the specified folder, checking user permissions.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
id Guid
user System.Security.Claims.ClaimsPrincipal
pattern String

Regular expression which is used to filter file names.

settings Nucleus.Abstractions.Models.Paging.PagingSettings

Paging settings.

GetFileContents (Site,File) Method

GetFileContents (Site site, File file)
Retrive the contents of the specified file and return as a stream.

DeleteFile (Site,File) Method

DeleteFile (Site site, File file)
Delete the specified file.

RenameFile (Site,File,String) Method

RenameFile (Site site, File file, String newName)
Rename the specified file.
Remarks
File system providers must ensure that the file extension cannot be changed, to prevent users from uploading an unauthorized file extension renamed to another type and then renaming it. This check is done in the FileSystemManager, but should also be done in the RenameFile implementation.

SaveFile (Site,String,String,String,Stream,Boolean) Method

SaveFile (Site site, String providerKey, String parentPath, String newFileName, Stream content, Boolean overwrite)
Save a file.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
providerKey String
parentPath String
newFileName String
content System.IO.Stream
overwrite Boolean

RefreshProperties (Site,File) Method

RefreshProperties (Site site, File file)
Refresh the properties of a file.
Remarks
Use this method to populate the properties of a file after MVC model binding returns a file object with just the Id property populated.

CopyPermissionsToDescendants (Site,Folder,ClaimsPrincipal,CopyPermissionOperation) Method

CopyPermissionsToDescendants (Site site, Folder folder, ClaimsPrincipal user, CopyPermissionOperation operation)
Copy permissions from the specified folder to its descendants.
Parameters
Name Type
site Nucleus.Abstractions.Models.Site
folder Nucleus.Abstractions.Models.FileSystem.Folder
user System.Security.Claims.ClaimsPrincipal
operation Nucleus.Abstractions.Managers.CopyPermissionOperation

If operation is Replace overwrite all permissions of descendant folders. if operation is Merge, merge the descendant folder permissions with the specified folder permissions.