consolidate Service interface and implementation classes

This commit is contained in:
sbwalker
2025-08-11 16:53:32 -04:00
parent b3f6194fda
commit 64b8b5d3c8
70 changed files with 1763 additions and 1996 deletions

View File

@ -9,6 +9,58 @@ using Oqtane.Documentation;
namespace Oqtane.Services
{
/// <summary>
/// Service to get / create / modify <see cref="Folder"/> objects.
/// </summary>
public interface IFolderService
{
/// <summary>
/// Retrieve root folders of a <see cref="Site"/>
/// </summary>
/// <param name="siteId"></param>
/// <returns></returns>
Task<List<Folder>> GetFoldersAsync(int siteId);
/// <summary>
/// Retrieve the information of one <see cref="Folder"/>
/// </summary>
/// <param name="folderId"></param>
/// <returns></returns>
Task<Folder> GetFolderAsync(int folderId);
/// <summary>
/// Create one Folder using a <see cref="Folder"/> object.
/// </summary>
/// <param name="folder"></param>
/// <returns></returns>
Task<Folder> AddFolderAsync(Folder folder);
/// <summary>
/// Update the information about a <see cref="Folder"/>
/// Use this to rename the folder etc.
/// </summary>
/// <param name="folder"></param>
/// <returns></returns>
Task<Folder> UpdateFolderAsync(Folder folder);
/// <summary>
/// Delete a <see cref="Folder"/>
/// </summary>
/// <param name="folderId">Reference to a <see cref="Folder"/></param>
/// <returns></returns>
Task DeleteFolderAsync(int folderId);
/// <summary>
/// Get a <see cref="Folder"/> of a <see cref="Site"/> based on the path.
/// </summary>
/// <param name="siteId">Reference to the <see cref="Site"/></param>
/// <param name="folderPath">Path of the folder
/// TODO: todoc verify exactly from where the folder path must start
/// </param>
/// <returns></returns>
Task<Folder> GetFolderAsync(int siteId, [NotNull] string folderPath);
}
[PrivateApi("Don't show in the documentation, as everything should use the Interface")]
public class FolderService : ServiceBase, IFolderService
{