CloudBuilder/CloudBuilder.AI.Service/AiChapterService.auto.cs
owenchen d795476b1f ow
2026-05-19 10:58:32 +08:00

73 lines
2.7 KiB
C#

using CloudBuilder.Core.DatabaseAccessor.Entity;
using Microsoft.AspNetCore.Authorization;
using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.AI.Entity;
using CloudBuilder.AI.Policy;
using CloudBuilder.AI.SearchCriteria;
namespace CloudBuilder.AI.Service
{
public class AiChapterService : IAiChapterService
{
private readonly IApplicationService service;
private IRepository<AiChapterEntity> repository;
public AiChapterService(IApplicationService service)
{
this.service = service;
repository = service.GetRepository<IRepository<AiChapterEntity>>();
}
[PermissionOperate(name: AIPermissionPolicy.AiChapter, operate: Operate.Find)]
public AiChapterEntity FindByKey(string key)
{
return repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!;
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Find)]
public AiChapterEntity[] FindByTitle(string title)
{
IRepository<AiBookEntity> repositoryAiBookEntity = repository.GetRepository<IRepository<AiBookEntity>>();
AiBookEntity aiBookEntity = repositoryAiBookEntity.DetachedEntities.Where(x => x.Title == title).FirstOrDefault()!;
if (aiBookEntity == null) return null;
return repository.DetachedEntities.Where(x => x.BookGuid == aiBookEntity.Guid).ToArray();
}
//[PermissionOperate(name: AIPermissionPolicy.AiChapter, operate: Operate.Find)]
public dynamic FindBySearchCriteria(AiChapterSearchCriteria criteria)
{
throw new NotImplementedException();
}
//[PermissionOperate(name: AIPermissionPolicy.AiChapter, operate: Operate.Print)]
public dynamic PrintBySearchCriteria(AiChapterSearchCriteria criteria)
{
throw new NotImplementedException();
}
[PermissionOperate(name: AIPermissionPolicy.AiChapter, operate: Operate.Insert)]
[UnitOfWork]
public AiChapterEntity Insert(AiChapterEntity data)
{
throw new NotImplementedException();
}
[PermissionOperate(name: AIPermissionPolicy.AiChapter, operate: Operate.Update)]
[UnitOfWork]
public AiChapterEntity Update(AiChapterEntity data)
{
throw new NotImplementedException();
}
[PermissionOperate(name: AIPermissionPolicy.AiChapter, operate: Operate.Delete)]
[UnitOfWork]
public void Delete(string key)
{
var ent = repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!;
if (ent != null) { repository.DeleteNow(ent); }
}
}
}