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

88 lines
3.1 KiB
C#

using CloudBuilder.AI.Data;
using CloudBuilder.AI.Entity;
using CloudBuilder.AI.Policy;
using CloudBuilder.AI.SearchCriteria;
using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using CloudBuilder.Core.Service;
using CloudBuilder.Security.Entity;
using Microsoft.AspNetCore.Authorization;
namespace CloudBuilder.AI.Service
{
public class AiBookService : IAiBookService
{
private readonly IApplicationService service;
private IRepository<AiBookEntity> repository;
public AiBookService(IApplicationService service)
{
this.service = service;
repository = service.GetRepository<IRepository<AiBookEntity>>();
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Find)]
public AiBookEntity FindByKey(string key)
{
return repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!;
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Find)]
public AiBookEntity FindByTitle(string title)
{
return repository.DetachedEntities.Where(x => x.Title == title).FirstOrDefault()!;
}
//[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Find)]
public dynamic FindBySearchCriteria(AiBookSearchCriteria criteria)
{
throw new NotImplementedException();
}
//[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Print)]
public dynamic PrintBySearchCriteria(AiBookSearchCriteria criteria)
{
throw new NotImplementedException();
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Insert)]
[UnitOfWork]
public AiBookEntity Insert(AiBookEntity data)
{
throw new NotImplementedException();
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Insert)]
[UnitOfWork]
public void Insert(AiBookData data)
{
AiBookEntity entity = repository.DetachedEntities.Where(x => x.Title == data.AiBook.Title).FirstOrDefault();
if (entity != null)
{
throw new ValidatedException("记录已存在.");
}
repository.InsertNow(data.AiBook);
IRepository<AiChapterEntity> repositoryAiChapterEntity = repository.GetRepository<IRepository<AiChapterEntity>>();
repositoryAiChapterEntity.InsertNow(data.AiChapters);
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, operate: Operate.Update)]
[UnitOfWork]
public AiBookEntity Update(AiBookEntity data)
{
throw new NotImplementedException();
}
[PermissionOperate(name: AIPermissionPolicy.AiBook, 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); }
}
}
}