luoqian d93098638d docs: 补全 C# XML 文档注释,覆盖所有公开与内部成员
为 14 个项目中缺少 XML 注释的类、接口、方法、属性、字段、record、
枚举等成员补全中文文档注释。接口方法在接口层定义完整注释,实现类
使用 <inheritdoc /> 引用。私有辅助方法结合业务语义编写注释。

扫描结果:missing-csharp-docs.txt 缺失项归零。
构建结果:0 警告,0 错误。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 14:45:07 +08:00

102 lines
5.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using FileShare_Common.Core;
namespace FileShare_Services.Services.FileLibrary
{
/// <summary>
/// 文件库核心业务服务接口,提供磁盘枚举、目录管理、文件扫描与检索功能。
/// </summary>
public interface IFileLibraryService
{
/// <summary>
/// 获取服务器所有磁盘驱动器信息。
/// </summary>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>驱动器信息列表。</returns>
Task<List<DriveDto>> GetDrivesAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 获取指定路径下的子目录列表。
/// </summary>
/// <param name="path">父目录路径,为空时返回根目录。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>子目录信息列表。</returns>
Task<List<DirectoryDto>> GetDirectoriesAsync(string? path, CancellationToken cancellationToken = default);
/// <summary>
/// 获取所有已注册的文件库根目录及其文件数量。
/// </summary>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>文件库根目录列表。</returns>
Task<List<LibraryRootDto>> GetRootsAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 添加新的文件库根目录,如已存在则激活并重新扫描。
/// </summary>
/// <param name="request">包含路径、显示名称和扫描间隔的请求。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>新添加或已存在的根目录信息。</returns>
Task<LibraryRootDto> AddRootAsync(AddLibraryRootRequest request, CancellationToken cancellationToken = default);
/// <summary>
/// 启用或禁用指定的文件库根目录。
/// </summary>
/// <param name="request">包含根目录 ID 和目标启用状态的请求。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>更新后的根目录信息。</returns>
Task<LibraryRootDto> SetRootEnabledAsync(UpdateLibraryRootRequest request, CancellationToken cancellationToken = default);
/// <summary>
/// 删除指定的文件库根目录。
/// </summary>
/// <param name="request">包含根目录 ID 的请求。</param>
/// <param name="cancellationToken">取消令牌。</param>
Task DeleteRootAsync(DeleteLibraryRootRequest request, CancellationToken cancellationToken = default);
/// <summary>
/// 立即扫描指定根目录,枚举所有支持的媒体文件并更新数据库。
/// </summary>
/// <param name="rootId">根目录 ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>扫描后的根目录信息。</returns>
Task<LibraryRootDto> ScanRootAsync(int rootId, CancellationToken cancellationToken = default);
/// <summary>
/// 扫描所有已到期(距上次扫描超过间隔时间)的根目录。
/// </summary>
/// <param name="cancellationToken">取消令牌。</param>
Task ScanDueRootsAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 分页搜索已扫描的文件记录,支持按媒体类型、关键词和根目录过滤。
/// </summary>
/// <param name="request">包含分页和过滤条件的请求。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>分页文件记录响应。</returns>
Task<PagedResponse<FileRecordDto>> SearchFilesAsync(SearchFilesRequest request, CancellationToken cancellationToken = default);
/// <summary>
/// 根据 ID 获取单个文件的记录信息。
/// </summary>
/// <param name="id">文件记录 ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>文件记录 DTO不存在时返回 null。</returns>
Task<FileRecordDto?> GetFileAsync(int id, CancellationToken cancellationToken = default);
/// <summary>
/// 获取文本文件的预览内容(最多 1 MB
/// </summary>
/// <param name="id">文件记录 ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>文本预览 DTO文件不存在或非文本类型时返回 null。</returns>
Task<TextPreviewDto?> GetTextPreviewAsync(int id, CancellationToken cancellationToken = default);
/// <summary>
/// 浏览指定根目录下的目录结构和文件列表。
/// </summary>
/// <param name="request">包含根目录 ID 和路径的请求。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>目录浏览响应,包含子目录和文件列表。</returns>
Task<BrowseDirectoryResponse> BrowseDirectoryAsync(BrowseDirectoryRequest request, CancellationToken cancellationToken = default);
}
}