using System.Threading;

namespace Dpz.Core.Service.RepositoryService;

/// <summary>
/// 时间轴
/// </summary>
public interface ITimelineService : ICacheService
{
    /// <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="pageIndex"></param>
    /// <param name="pageSize"></param>
    /// <param name="content"></param>
    /// <param name="account"></param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<IPagedList<VmTimeline>> GetPageAsync(
        int pageIndex,
        int pageSize,
        string? content = null,
        string? account = null,
        CancellationToken cancellationToken = default
    );

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

这是一个定义时间轴服务的接口代码,属于 .NET Core 应用程序的服务层。让我详细解释一下:

接口概述

public interface ITimelineService : ICacheService

这个接口 ITimelineService 继承自 ICacheService,表明它是一个具有缓存功能的时间轴服务接口。

主要功能

1. 获取时间轴列表

Task<List<VmTimeline>> GetTimelinesAsync(string account, CancellationToken cancellationToken = default)
  • 根据账户获取该用户的所有时间轴记录
  • 返回 VmTimeline 对象的列表

2. 保存时间轴

Task SaveAsync(VmTimeline viewModel, CancellationToken cancellationToken = default)
  • 保存或更新时间轴记录
  • 接受一个 VmTimeline 视图模型对象

3. 删除时间轴

Task DeleteAsync(string[] id, CancellationToken cancellationToken = default)
  • 支持批量删除操作(通过 string[] 数组传入多个ID)
  • 支持取消操作

4. 分页查询

Task<IPagedList<VmTimeline>> GetPageAsync(int pageIndex, int pageSize, string? content = null, string? account = null, CancellationToken cancellationToken = default)
  • 提供分页功能,支持按内容和账户进行筛选
  • 返回分页结果 IPagedList<VmTimeline>
  • contentaccount 参数可选,用于过滤条件

5. 查找单个时间轴

Task<VmTimeline?> FindAsync(string id, CancellationToken cancellationToken = default)
  • 根据ID查找特定的时间轴记录
  • 返回可空的 VmTimeline 对象

设计特点

  1. 异步操作: 所有方法都是异步的,返回 TaskTask<T>
  2. 取消支持: 每个方法都支持 CancellationToken,可以在需要时取消长时间运行的操作
  3. 缓存功能: 继承自 ICacheService,具备缓存能力
  4. CRUD完整性: 提供了完整的增删改查操作
  5. 灵活查询: 支持多种查询方式(列表、分页、单个查找)

这个接口设计遵循了现代 .NET 应用程序的最佳实践,适用于构建可扩展、高性能的时间轴功能模块。

评论加载中...