using Dpz.Core.Public.ViewModel.Request;

namespace Dpz.Core.Service.RepositoryService;

/// <summary>
/// 时间轴
/// </summary>
public interface ITimelineService
{
    /// <summary>
    /// 获取时间轴
    /// </summary>
    /// <param name="account"></param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<List<VmTimeline>> GetTimelinesAsync(
        string account,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 保存时间轴
    /// </summary>
    /// <param name="viewModel"></param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task SaveAsync(VmTimeline viewModel, CancellationToken cancellationToken = default);

    /// <summary>
    /// 删除时间轴(支持取消)
    /// </summary>
    /// <param name="id"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task DeleteAsync(string[] id, CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取时间轴分页信息
    /// </summary>
    /// <param name="request"></param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<IPagedList<VmTimeline>> GetPageAsync(
        TimelinePageRequest request,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 查找时间轴
    /// </summary>
    /// <param name="id"></param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<VmTimeline?> FindAsync(string id, CancellationToken cancellationToken = default);
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

代码解释

这是一个 C# 接口定义文件,定义了时间轴(Timeline)服务的核心业务操作契约。

命名空间

  • Dpz.Core.Service.RepositoryService - 属于核心服务层的仓储服务模块
  • 引用了 Dpz.Core.Public.ViewModel.Request - 用于请求视图模型

接口:ITimelineService

这是一个时间轴业务服务接口,定义了5个异步方法,涵盖了典型的 CRUD 操作:

1. GetTimelinesAsync - 获取时间轴列表

Task<List<VmTimeline>> GetTimelinesAsync(string account, CancellationToken cancellationToken)
  • 参数
    • account:账户标识
    • cancellationToken:取消令牌(可选,默认值)
  • 返回:返回指定账户的时间轴列表

2. SaveAsync - 保存时间轴

Task SaveAsync(VmTimeline viewModel, CancellationToken cancellationToken)
  • 用于新增或更新时间轴记录
  • 接收一个 VmTimeline 视图模型对象

3. DeleteAsync - 删除时间轴

Task DeleteAsync(string[] id, CancellationToken cancellationToken)
  • 支持批量删除(参数为字符串数组)
  • 明确标注支持取消操作

4. GetPageAsync - 分页查询

Task<IPagedList<VmTimeline>> GetPageAsync(TimelinePageRequest request, CancellationToken cancellationToken)
  • 返回IPagedList<VmTimeline> 分页结果对象
  • 参数TimelinePageRequest 包含分页参数(如页码、每页数量、查询条件等)

5. FindAsync - 根据ID查找单个时间轴

Task<VmTimeline?> FindAsync(string id, CancellationToken cancellationToken)
  • 返回:可空的 VmTimeline?(表示可能找不到记录)
  • 用于精确查询单条记录

设计特点

  1. 异步模式:所有方法均返回 Task,支持异步操作
  2. 取消支持:所有方法都包含 CancellationToken 参数,便于长时间运行的操作被取消
  3. 标准CRUD:实现了增(Save)、删(Delete)、改(Save)、查(Find/GetPage/GetTimelines)
  4. 分页支持:专门提供分页查询方法,适合大数据量场景
  5. 批量操作:删除方法支持批量删除(数组参数)

这是一个典型的 仓储服务接口设计,遵循依赖倒置原则,具体实现类需要实现这些方法来提供时间轴数据的持久化操作。

评论加载中...