using Oqtane.Models;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
namespace Oqtane.Services
{
///
/// Service to get / create / modify objects.
///
public interface IFolderService
{
///
/// Retrieve root folders of a
///
///
///
Task> GetFoldersAsync(int siteId);
///
/// Retrieve the information of one
///
///
///
Task GetFolderAsync(int folderId);
///
/// Create one Folder using a object.
///
///
///
Task AddFolderAsync(Folder folder);
///
/// Update the information about a
/// Use this to rename the folder etc.
///
///
///
Task UpdateFolderAsync(Folder folder);
///
/// Update the internal Folder-Order within the list of Folders.
///
/// Reference to the
/// Reference to a for the security check
/// Reference to the Parent or null - this Folders children will be re-sorted.
///
Task UpdateFolderOrderAsync(int siteId, int folderId, int? parentId);
///
/// Delete a
///
/// Reference to a
///
Task DeleteFolderAsync(int folderId);
///
/// Get a of a based on the path.
///
/// Reference to the
/// Path of the folder
/// TODO: todoc verify exactly from where the folder path must start
///
///
Task GetFolderAsync(int siteId, [NotNull]string folderPath);
}
}