88 lines
3.1 KiB
C#
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); }
|
|
}
|
|
|
|
|
|
}
|
|
}
|