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);
- 支持批量删除动态页面
- 使用可变参数,可以删除一个或多个页面
设计特点
- 异步设计:所有方法都返回
Task,支持异步操作,提高性能 - 视图模型驱动:使用专门的ViewModel类型,遵循分层架构原则
- 灵活的查询:支持分页、筛选等多种查询方式
- 批量操作:删除操作支持批量处理
- 可空返回:查询方法返回可空类型,处理不存在的情况
这个接口体现了良好的软件架构设计,将业务逻辑抽象化,便于测试和维护。
评论加载中...