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 repository; public AiChapterService(IApplicationService service) { this.service = service; repository = service.GetRepository>(); } [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 repositoryAiBookEntity = repository.GetRepository>(); 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); } } } }