using Yi.Framework.Infrastructure.Ddd.Repositories;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Core.Bbs.Entities;
namespace Yi.Furion.Application.Bbs.Domain
{
///
/// 论坛模块的领域服务
///
public class ForumManager:ITransient
{
private readonly IRepository _discussRepository;
private readonly IRepository _plateEntityRepository;
private readonly IRepository _commentRepository;
public ForumManager(IRepository discussRepository, IRepository plateEntityRepository, IRepository commentRepository)
{
_discussRepository = discussRepository;
_plateEntityRepository = plateEntityRepository;
_commentRepository = commentRepository;
}
//主题是不能直接创建的,需要由领域服务统一创建
public async Task CreateDiscussAsync(DiscussEntity entity)
{
entity.Id = SnowflakeHelper.NextId;
entity.CreationTime = DateTime.Now;
entity.AgreeNum = 0;
entity.SeeNum = 0;
return await _discussRepository.InsertReturnEntityAsync(entity);
}
public async Task CreateCommentAsync(long discussId, long parentId, long rootId, string content)
{
var entity = new CommentEntity(discussId);
entity.Id = SnowflakeHelper.NextId;
entity.Content = content;
entity.ParentId = parentId;
entity.RootId = rootId;
return await _commentRepository.InsertReturnEntityAsync(entity);
}
}
}