using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Domain.Services; using Yi.Framework.Bbs.Domain.Entities; using Yi.Framework.Bbs.Domain.Managers.ArticleImport; using Yi.Framework.Bbs.Domain.Shared.Enums; using Yi.Framework.Bbs.Domain.Shared.Model; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.Bbs.Domain.Managers { /// /// 论坛模块的领域服务 /// public class ForumManager : DomainService { public readonly ISqlSugarRepository _discussRepository; public readonly ISqlSugarRepository _plateEntityRepository; public readonly ISqlSugarRepository _commentRepository; public readonly ISqlSugarRepository _articleRepository; public ForumManager(ISqlSugarRepository discussRepository, ISqlSugarRepository plateEntityRepository, ISqlSugarRepository commentRepository, ISqlSugarRepository articleRepository) { _discussRepository = discussRepository; _plateEntityRepository = plateEntityRepository; _commentRepository = commentRepository; _articleRepository = articleRepository; } //主题是不能直接创建的,需要由领域服务统一创建 public async Task CreateDiscussAsync(DiscussEntity entity) { entity.CreationTime = DateTime.Now; entity.AgreeNum = 0; entity.SeeNum = 0; return await _discussRepository.InsertReturnEntityAsync(entity); } public async Task CreateCommentAsync(Guid discussId, Guid parentId, Guid rootId, string content) { var entity = new CommentEntity(discussId); entity.Content = content; entity.ParentId = parentId; entity.RootId = rootId; return await _commentRepository.InsertReturnEntityAsync(entity); } /// /// 导入文章 /// /// /// /// /// /// public async Task PostImportAsync(Guid discussId,Guid articleParentId, List fileObjs, ArticleImportTypeEnum importType) { AbstractArticleImport abstractArticleImport = default; switch (importType) { case ArticleImportTypeEnum.Defalut: abstractArticleImport = new DefaultArticleImport(); break; case ArticleImportTypeEnum.VuePress: abstractArticleImport = new VuePressArticleImport(); break; default: abstractArticleImport = new DefaultArticleImport(); break; } var articleHandled = abstractArticleImport.Import(discussId, articleParentId, fileObjs); //await _articleRepository.InsertManyAsync(articleHandled); } } }