using Dpz.Core.Public.ViewModel.DynamicPages;

namespace Dpz.Core.Service.RepositoryService;

/// <summary>
/// 动态页
/// </summary>
public interface IDynamicPageService
{
    /// <summary>
    /// 创建新的动态页
    /// </summary>
    /// <param name="vmCreateDynamicPage"></param>
    /// <returns></returns>
    Task CreateAsync(VmCreateDynamicPage vmCreateDynamicPage);

    /// <summary>
    /// 根据ID查找动态页
    /// </summary>
    /// <param name="id"></param>
    /// <param name="account"></param>
    /// <returns></returns>
    Task<VmDynamicPageDetail?> FindAsync(string id, string? account = null);

    /// <summary>
    /// 修改动态也内容
    /// </summary>
    /// <param name="viewModel"></param>
    /// <returns></returns>
    Task EditContentAsync(VmEditDynamicPage viewModel);

    /// <summary>
    /// 修改内容
    /// </summary>
    /// <param name="id"></param>
    /// <param name="content"></param>
    /// <returns></returns>
    Task EditContentAsync(string id, string content);

    /// <summary>
    /// 删除动态页
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task DeleteAsync(params string[] id);

    /// <summary>
    /// 获取动态页分页信息
    /// </summary>
    /// <param name="pageIndex"></param>
    /// <param name="pageSize"></param>
    /// <param name="name"></param>
    /// <param name="creatorName"></param>
    /// <returns></returns>
    Task<IPagedList<VmDynamicPage>> GetPageAsync(int pageIndex, int pageSize, string? name, string? creatorName = null);

    /// <summary>
    /// 是否存在
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<bool> IsExistsAsync(string id);
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

这是一个定义动态页面服务的接口文件,属于服务层的仓储服务模块。让我来详细解释这个接口:

接口概述

IDynamicPageService 是一个用于管理动态页面的服务接口,提供了动态页面的完整CRUD(创建、读取、更新、删除)操作。

主要功能方法

1. 创建操作

Task CreateAsync(VmCreateDynamicPage vmCreateDynamicPage);
  • 用于创建新的动态页面
  • 接收一个创建动态页面的视图模型作为参数

2. 查询操作

Task<VmDynamicPageDetail?> FindAsync(string id, string? account = null);
  • 根据ID查找特定的动态页面
  • 可选参数 account 可能用于权限控制或用户相关的查询
  • 返回详细的动态页面信息,可能为null
Task<IPagedList<VmDynamicPage>> GetPageAsync(int pageIndex, int pageSize, string? name, string? creatorName = null);
  • 获取动态页面的分页列表
  • 支持按页面名称和创建者名称进行筛选
  • 返回分页结果
Task<bool> IsExistsAsync(string id);
  • 检查指定ID的动态页面是否存在
  • 返回布尔值表示存在状态

3. 更新操作

Task EditContentAsync(VmEditDynamicPage viewModel);
Task EditContentAsync(string id, string content);
  • 提供两种方式修改动态页面内容
  • 第一种:通过完整的编辑视图模型
  • 第二种:直接通过ID和内容字符串进行更新

4. 删除操作

Task DeleteAsync(params string[] id);
  • 支持批量删除动态页面
  • 使用可变参数,可以删除一个或多个页面

设计特点

  1. 异步设计:所有方法都返回 Task,支持异步操作,提高性能
  2. 视图模型驱动:使用专门的ViewModel类型,遵循分层架构原则
  3. 灵活的查询:支持分页、筛选等多种查询方式
  4. 批量操作:删除操作支持批量处理
  5. 可空返回:查询方法返回可空类型,处理不存在的情况

这个接口体现了良好的软件架构设计,将业务逻辑抽象化,便于测试和维护。

评论加载中...