| | |
| | | <Namespace>CloudBuilder.Web.Entry.Controllers.Hr</Namespace> |
| | | <FileNameSuffix>.ts</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>Entity</TemplateType> |
| | | <TemplateFileName>IEntity.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel\Entity</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>Entity.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>IEntityKey</TemplateType> |
| | | <TemplateFileName>IEntityKey.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel\Entity</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>EntityKey.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>IService</TemplateType> |
| | | <TemplateFileName>IService.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel\Service</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>Service.auto.cs</FileNameSuffix> |
| | | <FileNamePrefix>I</FileNamePrefix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>Permission</TemplateType> |
| | | <TemplateFileName>Permission.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel\Policy</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>RegistEntity</TemplateType> |
| | | <TemplateFileName>RegistEntity.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel\Entity</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>SearchCriteria</TemplateType> |
| | | <TemplateFileName>SearchCriteria.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel\SearchCriteria</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>Service</TemplateType> |
| | | <TemplateFileName>Service.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Novel.Service</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>Service.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>TypeScript</TemplateType> |
| | | <TemplateFileName>TypeScript.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\Webmaster\src\data\auto</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel</Assembly> |
| | | <Namespace>CloudBuilder.Novel</Namespace> |
| | | <FileNameSuffix>.ts</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>Controller</TemplateType> |
| | | <TemplateFileName>Controller.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Novel</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel.Service</Assembly> |
| | | <Namespace>CloudBuilder.Web.Entry.Controllers.Novel</Namespace> |
| | | <FileNameSuffix>Controller.auto.cs</FileNameSuffix> |
| | | </NamespaceObject> |
| | | <NamespaceObject> |
| | | <TemplateType>TypeScriptService</TemplateType> |
| | | <TemplateFileName>TypeScriptService.cshtml</TemplateFileName> |
| | | <OutFilePath>D:\NET8\Webmaster\src\service\Novel</OutFilePath> |
| | | <Assembly>CloudBuilder.Novel.Service</Assembly> |
| | | <Namespace>CloudBuilder.Web.Entry.Controllers.Novel</Namespace> |
| | | <FileNameSuffix>.ts</FileNameSuffix> |
| | | </NamespaceObject> |
| | | </NamespaceObjects> |
| | | <AssemblyReferences> |
| | | <AssemblyReference> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor; |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.Policy; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public class BookService : IBookService |
| | | { |
| | | private readonly IApplicationService service; |
| | | |
| | | private IRepository<BookEntity> repository; |
| | | public BookService(IApplicationService service) |
| | | { |
| | | this.service = service; |
| | | repository = service.GetRepository<IRepository<BookEntity>>(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Book, operate: Operate.Find)] |
| | | public BookEntity FindByKey(string key) |
| | | { |
| | | return repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!; |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Book, operate: Operate.Find)] |
| | | public dynamic FindBySearchCriteria(BookSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Book, operate: Operate.Print)] |
| | | public dynamic PrintBySearchCriteria(BookSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Book, operate: Operate.Insert)] |
| | | [UnitOfWork] |
| | | public BookEntity Insert(BookEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Book, operate: Operate.Update)] |
| | | [UnitOfWork] |
| | | public BookEntity Update(BookEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Book, 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); } |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor; |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.Policy; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public class ChapterService : IChapterService |
| | | { |
| | | private readonly IApplicationService service; |
| | | |
| | | private IRepository<ChapterEntity> repository; |
| | | public ChapterService(IApplicationService service) |
| | | { |
| | | this.service = service; |
| | | repository = service.GetRepository<IRepository<ChapterEntity>>(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Chapter, operate: Operate.Find)] |
| | | public ChapterEntity FindByKey(string key) |
| | | { |
| | | return repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!; |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Chapter, operate: Operate.Find)] |
| | | public dynamic FindBySearchCriteria(ChapterSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Chapter, operate: Operate.Print)] |
| | | public dynamic PrintBySearchCriteria(ChapterSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Chapter, operate: Operate.Insert)] |
| | | [UnitOfWork] |
| | | public ChapterEntity Insert(ChapterEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Chapter, operate: Operate.Update)] |
| | | [UnitOfWork] |
| | | public ChapterEntity Update(ChapterEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Chapter, 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); } |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net8.0</TargetFramework> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <Compile Remove="Utility\**" /> |
| | | <EmbeddedResource Remove="Utility\**" /> |
| | | <None Remove="Utility\**" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.AspNetCore.Authorization" Version="8.0.0" /> |
| | | <PackageReference Include="ClosedXML" Version="0.102.1" /> |
| | | <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.VisualStudio.OLE.Interop" Version="17.8.37221" /> |
| | | <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CloudBuilder.Core"> |
| | | <HintPath>..\CloudBuilder.Core\bin\Debug\net8.0\CloudBuilder.Core.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="CloudBuilder.Novel"> |
| | | <HintPath>..\CloudBuilder.Novel\bin\Debug\net8.0\CloudBuilder.Novel.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="CloudBuilder.Security"> |
| | | <HintPath>..\CloudBuilder.Security\bin\Debug\net8.0\CloudBuilder.Security.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | <Target Name="PostBuild" AfterTargets="PostBuildEvent"> |
| | | <Exec Command="D:\NET8\CloudBuilder\CodeGenerator\bin\Debug\net8.0-windows\CodeGenerator.exe $(TargetPath)" /> |
| | | </Target> |
| | | </Project> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor; |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.Policy; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public class ParagraphService : IParagraphService |
| | | { |
| | | private readonly IApplicationService service; |
| | | |
| | | private IRepository<ParagraphEntity> repository; |
| | | public ParagraphService(IApplicationService service) |
| | | { |
| | | this.service = service; |
| | | repository = service.GetRepository<IRepository<ParagraphEntity>>(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Paragraph, operate: Operate.Find)] |
| | | public ParagraphEntity FindByKey(string key) |
| | | { |
| | | return repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!; |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Paragraph, operate: Operate.Find)] |
| | | public dynamic FindBySearchCriteria(ParagraphSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Paragraph, operate: Operate.Print)] |
| | | public dynamic PrintBySearchCriteria(ParagraphSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Paragraph, operate: Operate.Insert)] |
| | | [UnitOfWork] |
| | | public ParagraphEntity Insert(ParagraphEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Paragraph, operate: Operate.Update)] |
| | | [UnitOfWork] |
| | | public ParagraphEntity Update(ParagraphEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Paragraph, 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); } |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor; |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.Policy; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public class SentenceService : ISentenceService |
| | | { |
| | | private readonly IApplicationService service; |
| | | |
| | | private IRepository<SentenceEntity> repository; |
| | | public SentenceService(IApplicationService service) |
| | | { |
| | | this.service = service; |
| | | repository = service.GetRepository<IRepository<SentenceEntity>>(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Sentence, operate: Operate.Find)] |
| | | public SentenceEntity FindByKey(string key) |
| | | { |
| | | return repository.DetachedEntities.Where(x => x.Guid == key).FirstOrDefault()!; |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Sentence, operate: Operate.Find)] |
| | | public dynamic FindBySearchCriteria(SentenceSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | //[PermissionOperate(name: NovelPermissionPolicy.Sentence, operate: Operate.Print)] |
| | | public dynamic PrintBySearchCriteria(SentenceSearchCriteria criteria) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Sentence, operate: Operate.Insert)] |
| | | [UnitOfWork] |
| | | public SentenceEntity Insert(SentenceEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Sentence, operate: Operate.Update)] |
| | | [UnitOfWork] |
| | | public SentenceEntity Update(SentenceEntity data) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | |
| | | [PermissionOperate(name: NovelPermissionPolicy.Sentence, 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); } |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net8.0</TargetFramework> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.AspNetCore.Authorization" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.VisualStudio.OLE.Interop" Version="17.8.37221" /> |
| | | <PackageReference Include="RazorEngineCore" Version="2023.11.2" /> |
| | | <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Folder Include="Linkup\" /> |
| | | <Folder Include="Publisher\" /> |
| | | <Folder Include="SearchCriteria\" /> |
| | | <Folder Include="Service\" /> |
| | | <Folder Include="Subscriber\" /> |
| | | <Folder Include="Utility\" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CloudBuilder.Core"> |
| | | <HintPath>..\CloudBuilder.Core\bin\Debug\net8.0\CloudBuilder.Core.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="CloudBuilder.Security"> |
| | | <HintPath>..\CloudBuilder.Security\bin\Debug\net8.0\CloudBuilder.Security.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | <Target Name="PreBuild" BeforeTargets="PreBuildEvent"> |
| | | |
| | | </Target> |
| | | |
| | | <Target Name="PostBuild" AfterTargets="PostBuildEvent"> |
| | | <Exec Command="D:\NET8\CloudBuilder\CodeGenerator\bin\Debug\net8.0-windows\CodeGenerator.exe $(TargetPath)" /> |
| | | </Target> |
| | | </Project> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CloudBuilder.Novel.Data |
| | | { |
| | | public class PersonInfo |
| | | { |
| | | public PersonInfo() { } |
| | | |
| | | public int Count { get; set; } |
| | | |
| | | public string Name { get; set; } |
| | | |
| | | public string Rule { get; set; } |
| | | |
| | | public int Confidence { get; set; } |
| | | |
| | | public List<string> Paragraphs { get; set; } |
| | | |
| | | public List<string> Chapters { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | namespace CloudBuilder.Novel.Entity |
| | | { |
| | | [TypeScript] |
| | | [Table("book")] |
| | | public class BookEntity : EntityBase<string> |
| | | { |
| | | |
| | | public BookEntity() |
| | | { |
| | | } |
| | | |
| | | [Column("created_datetime")] |
| | | public DateTime CreatedDatetime { get; set; } |
| | | [Column("created_by")] |
| | | public string CreatedBy { get; set; } |
| | | [Column("updated_datetime")] |
| | | public DateTime UpdatedDatetime { get; set; } |
| | | [Column("updated_by")] |
| | | public string UpdatedBy { get; set; } |
| | | [Key] |
| | | [Column("guid")] |
| | | public string Guid { get; set; } |
| | | [Column("title")] |
| | | public string Title { get; set; } |
| | | [Column("author")] |
| | | public string Author { get; set; } |
| | | [Column("description")] |
| | | public string Description { get; set; } |
| | | [Column("book_type")] |
| | | public string BookType { get; set; } |
| | | [Column("file_path")] |
| | | public string FilePath { get; set; } |
| | | |
| | | public const string CREATED_DATETIME = "CreatedDatetime"; |
| | | public const string CREATED_BY = "CreatedBy"; |
| | | public const string UPDATED_DATETIME = "UpdatedDatetime"; |
| | | public const string UPDATED_BY = "UpdatedBy"; |
| | | public const string GUID = "Guid"; |
| | | public const string TITLE = "Title"; |
| | | public const string AUTHOR = "Author"; |
| | | public const string DESCRIPTION = "Description"; |
| | | public const string BOOK_TYPE = "BookType"; |
| | | public const string FILE_PATH = "FilePath"; |
| | | |
| | | public const string DB_NAME_BOOK = "book"; |
| | | public const string DB_NAME_FIELDS="created_datetime,created_by,updated_datetime,updated_by,guid,title,author,description,book_type,file_path"; |
| | | |
| | | public const string DB_CREATED_DATETIME = "created_datetime"; |
| | | public const string DB_CREATED_BY = "created_by"; |
| | | public const string DB_UPDATED_DATETIME = "updated_datetime"; |
| | | public const string DB_UPDATED_BY = "updated_by"; |
| | | public const string DB_GUID = "guid"; |
| | | public const string DB_TITLE = "title"; |
| | | public const string DB_AUTHOR = "author"; |
| | | public const string DB_DESCRIPTION = "description"; |
| | | public const string DB_BOOK_TYPE = "book_type"; |
| | | public const string DB_FILE_PATH = "file_path"; |
| | | |
| | | |
| | | public static BookEntity GetInstance() |
| | | { |
| | | return new BookEntity(); |
| | | } |
| | | |
| | | public virtual void CopyFrom(BookEntity source) |
| | | { |
| | | CopyFrom(source, true); |
| | | } |
| | | |
| | | public virtual void CopyFrom(BookEntity source, bool includeSystemFields) |
| | | { |
| | | if (source == null) |
| | | { |
| | | throw new NullReferenceException("Source entity is null."); |
| | | } |
| | | |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | this.Guid = source.Guid; |
| | | this.Title = source.Title; |
| | | this.Author = source.Author; |
| | | this.Description = source.Description; |
| | | this.BookType = source.BookType; |
| | | this.FilePath = source.FilePath; |
| | | |
| | | if (includeSystemFields) |
| | | { |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | } |
| | | } |
| | | |
| | | public override string GetSelectFrom() |
| | | { |
| | | return $" select {DB_NAME_FIELDS} from { DB_NAME_BOOK} with(nolock) "; |
| | | } |
| | | |
| | | public override string GetSelectCountFrom(string sqlWhere) |
| | | { |
| | | return $" select count(*) from { DB_NAME_BOOK} with(nolock) where 1=1 {sqlWhere}"; |
| | | } |
| | | |
| | | public override string GetSelectTopFrom(int limit, int start,string orderby,string orderbytag, string sqlWhere) |
| | | { |
| | | if (string.IsNullOrEmpty(orderbytag) || orderbytag.Trim() != "desc") orderbytag = "asc"; |
| | | if (string.IsNullOrEmpty(orderby) || !DB_NAME_FIELDS.Contains(orderby)) orderby = DB_GUID ; |
| | | string top = limit > 0 ? $"top {limit}" : ""; |
| | | return $" select {top} {DB_NAME_FIELDS} from (select {DB_NAME_FIELDS} ,row_number() over(order by {orderby} {orderbytag}) as num from { DB_NAME_BOOK} with(nolock) where 1=1 {sqlWhere} ) a where num> {limit * (start - 1)}"; |
| | | } |
| | | |
| | | public BookEntity Clone() |
| | | { |
| | | BookEntity result = new BookEntity(); |
| | | result.CopyFrom(this); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | namespace CloudBuilder.Novel.Entity |
| | | { |
| | | [TypeScript] |
| | | [Table("chapter")] |
| | | public class ChapterEntity : EntityBase<string> |
| | | { |
| | | |
| | | public ChapterEntity() |
| | | { |
| | | } |
| | | |
| | | [Column("created_datetime")] |
| | | public DateTime CreatedDatetime { get; set; } |
| | | [Column("created_by")] |
| | | public string CreatedBy { get; set; } |
| | | [Column("updated_datetime")] |
| | | public DateTime UpdatedDatetime { get; set; } |
| | | [Column("updated_by")] |
| | | public string UpdatedBy { get; set; } |
| | | [Key] |
| | | [Column("guid")] |
| | | public string Guid { get; set; } |
| | | [Column("chapter_index")] |
| | | public int ChapterIndex { get; set; } |
| | | [Column("title")] |
| | | public string Title { get; set; } |
| | | [Column("context")] |
| | | public string Context { get; set; } |
| | | |
| | | public const string CREATED_DATETIME = "CreatedDatetime"; |
| | | public const string CREATED_BY = "CreatedBy"; |
| | | public const string UPDATED_DATETIME = "UpdatedDatetime"; |
| | | public const string UPDATED_BY = "UpdatedBy"; |
| | | public const string GUID = "Guid"; |
| | | public const string CHAPTER_INDEX = "ChapterIndex"; |
| | | public const string TITLE = "Title"; |
| | | public const string CONTEXT = "Context"; |
| | | |
| | | public const string DB_NAME_CHAPTER = "chapter"; |
| | | public const string DB_NAME_FIELDS="created_datetime,created_by,updated_datetime,updated_by,guid,chapter_index,title,context"; |
| | | |
| | | public const string DB_CREATED_DATETIME = "created_datetime"; |
| | | public const string DB_CREATED_BY = "created_by"; |
| | | public const string DB_UPDATED_DATETIME = "updated_datetime"; |
| | | public const string DB_UPDATED_BY = "updated_by"; |
| | | public const string DB_GUID = "guid"; |
| | | public const string DB_CHAPTER_INDEX = "chapter_index"; |
| | | public const string DB_TITLE = "title"; |
| | | public const string DB_CONTEXT = "context"; |
| | | |
| | | |
| | | public static ChapterEntity GetInstance() |
| | | { |
| | | return new ChapterEntity(); |
| | | } |
| | | |
| | | public virtual void CopyFrom(ChapterEntity source) |
| | | { |
| | | CopyFrom(source, true); |
| | | } |
| | | |
| | | public virtual void CopyFrom(ChapterEntity source, bool includeSystemFields) |
| | | { |
| | | if (source == null) |
| | | { |
| | | throw new NullReferenceException("Source entity is null."); |
| | | } |
| | | |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | this.Guid = source.Guid; |
| | | this.ChapterIndex = source.ChapterIndex; |
| | | this.Title = source.Title; |
| | | this.Context = source.Context; |
| | | |
| | | if (includeSystemFields) |
| | | { |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | } |
| | | } |
| | | |
| | | public override string GetSelectFrom() |
| | | { |
| | | return $" select {DB_NAME_FIELDS} from { DB_NAME_CHAPTER} with(nolock) "; |
| | | } |
| | | |
| | | public override string GetSelectCountFrom(string sqlWhere) |
| | | { |
| | | return $" select count(*) from { DB_NAME_CHAPTER} with(nolock) where 1=1 {sqlWhere}"; |
| | | } |
| | | |
| | | public override string GetSelectTopFrom(int limit, int start,string orderby,string orderbytag, string sqlWhere) |
| | | { |
| | | if (string.IsNullOrEmpty(orderbytag) || orderbytag.Trim() != "desc") orderbytag = "asc"; |
| | | if (string.IsNullOrEmpty(orderby) || !DB_NAME_FIELDS.Contains(orderby)) orderby = DB_GUID ; |
| | | string top = limit > 0 ? $"top {limit}" : ""; |
| | | return $" select {top} {DB_NAME_FIELDS} from (select {DB_NAME_FIELDS} ,row_number() over(order by {orderby} {orderbytag}) as num from { DB_NAME_CHAPTER} with(nolock) where 1=1 {sqlWhere} ) a where num> {limit * (start - 1)}"; |
| | | } |
| | | |
| | | public ChapterEntity Clone() |
| | | { |
| | | ChapterEntity result = new ChapterEntity(); |
| | | result.CopyFrom(this); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.DependencyInjection.EFCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Reflection; |
| | | |
| | | namespace CloudBuilder.Policy.Entity |
| | | { |
| | | public class CloudBuilderNovelRegistEntity : IMasterRegistEntityType<ModelBuilder> |
| | | { |
| | | ///<summary> |
| | | ///注å
¥æ¨¡åå
çææå®ä½ç±» |
| | | ///</summary> |
| | | ///<param name="builder"></param> |
| | | public void RegistEntity(ModelBuilder builder) |
| | | { |
| | | string _assemblyName = Assembly.GetExecutingAssembly().GetName().Name; |
| | | //注å
¥ææEntityå®ä½ç±» |
| | | AddEntityType(builder, _assemblyName); |
| | | //妿Entityå®ä½ç±»ä¸æ¯åä¸ä¸»é®ï¼è¦åç¬éåæ³¨å
¥ |
| | | RegistKeys(builder); |
| | | } |
| | | |
| | | public void AddEntityType(ModelBuilder builder, string _assemblyName) |
| | | { |
| | | RegistEntityHelper.AddMasterEntityType(builder, _assemblyName); |
| | | } |
| | | |
| | | ///<summary> |
| | | ///妿åå¨å¤ä¸ªä¸»é®çï¼è¦å¨RegistKeysæ¹æ³æ³¨å
¥ |
| | | ///builder.Entity<xxxxxxEntity>().HasKey(c => new { c.TableName, c.FieldName }); |
| | | ///builder.Entity<xxxxxxEntity>(eb => { eb.HasNoKey(); }); |
| | | ///</summary> |
| | | ///<param name="builder"></param> |
| | | public void RegistKeys(ModelBuilder builder) |
| | | { |
| | | //***BEGIN*** |
| | | |
| | | |
| | | //***END*** |
| | | } |
| | | } |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | namespace CloudBuilder.Novel.Entity |
| | | { |
| | | [TypeScript] |
| | | [Table("paragraph")] |
| | | public class ParagraphEntity : EntityBase<string> |
| | | { |
| | | |
| | | public ParagraphEntity() |
| | | { |
| | | } |
| | | |
| | | [Column("created_datetime")] |
| | | public DateTime CreatedDatetime { get; set; } |
| | | [Column("created_by")] |
| | | public string CreatedBy { get; set; } |
| | | [Column("updated_datetime")] |
| | | public DateTime UpdatedDatetime { get; set; } |
| | | [Column("updated_by")] |
| | | public string UpdatedBy { get; set; } |
| | | [Key] |
| | | [Column("guid")] |
| | | public string Guid { get; set; } |
| | | [Column("paragraph_index")] |
| | | public int ParagraphIndex { get; set; } |
| | | [Column("context")] |
| | | public string Context { get; set; } |
| | | |
| | | public const string CREATED_DATETIME = "CreatedDatetime"; |
| | | public const string CREATED_BY = "CreatedBy"; |
| | | public const string UPDATED_DATETIME = "UpdatedDatetime"; |
| | | public const string UPDATED_BY = "UpdatedBy"; |
| | | public const string GUID = "Guid"; |
| | | public const string PARAGRAPH_INDEX = "ParagraphIndex"; |
| | | public const string CONTEXT = "Context"; |
| | | |
| | | public const string DB_NAME_PARAGRAPH = "paragraph"; |
| | | public const string DB_NAME_FIELDS="created_datetime,created_by,updated_datetime,updated_by,guid,paragraph_index,context"; |
| | | |
| | | public const string DB_CREATED_DATETIME = "created_datetime"; |
| | | public const string DB_CREATED_BY = "created_by"; |
| | | public const string DB_UPDATED_DATETIME = "updated_datetime"; |
| | | public const string DB_UPDATED_BY = "updated_by"; |
| | | public const string DB_GUID = "guid"; |
| | | public const string DB_PARAGRAPH_INDEX = "paragraph_index"; |
| | | public const string DB_CONTEXT = "context"; |
| | | |
| | | |
| | | public static ParagraphEntity GetInstance() |
| | | { |
| | | return new ParagraphEntity(); |
| | | } |
| | | |
| | | public virtual void CopyFrom(ParagraphEntity source) |
| | | { |
| | | CopyFrom(source, true); |
| | | } |
| | | |
| | | public virtual void CopyFrom(ParagraphEntity source, bool includeSystemFields) |
| | | { |
| | | if (source == null) |
| | | { |
| | | throw new NullReferenceException("Source entity is null."); |
| | | } |
| | | |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | this.Guid = source.Guid; |
| | | this.ParagraphIndex = source.ParagraphIndex; |
| | | this.Context = source.Context; |
| | | |
| | | if (includeSystemFields) |
| | | { |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | } |
| | | } |
| | | |
| | | public override string GetSelectFrom() |
| | | { |
| | | return $" select {DB_NAME_FIELDS} from { DB_NAME_PARAGRAPH} with(nolock) "; |
| | | } |
| | | |
| | | public override string GetSelectCountFrom(string sqlWhere) |
| | | { |
| | | return $" select count(*) from { DB_NAME_PARAGRAPH} with(nolock) where 1=1 {sqlWhere}"; |
| | | } |
| | | |
| | | public override string GetSelectTopFrom(int limit, int start,string orderby,string orderbytag, string sqlWhere) |
| | | { |
| | | if (string.IsNullOrEmpty(orderbytag) || orderbytag.Trim() != "desc") orderbytag = "asc"; |
| | | if (string.IsNullOrEmpty(orderby) || !DB_NAME_FIELDS.Contains(orderby)) orderby = DB_GUID ; |
| | | string top = limit > 0 ? $"top {limit}" : ""; |
| | | return $" select {top} {DB_NAME_FIELDS} from (select {DB_NAME_FIELDS} ,row_number() over(order by {orderby} {orderbytag}) as num from { DB_NAME_PARAGRAPH} with(nolock) where 1=1 {sqlWhere} ) a where num> {limit * (start - 1)}"; |
| | | } |
| | | |
| | | public ParagraphEntity Clone() |
| | | { |
| | | ParagraphEntity result = new ParagraphEntity(); |
| | | result.CopyFrom(this); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.DatabaseAccessor.Entity; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | namespace CloudBuilder.Novel.Entity |
| | | { |
| | | [TypeScript] |
| | | [Table("sentence")] |
| | | public class SentenceEntity : EntityBase<string> |
| | | { |
| | | |
| | | public SentenceEntity() |
| | | { |
| | | } |
| | | |
| | | [Column("created_datetime")] |
| | | public DateTime CreatedDatetime { get; set; } |
| | | [Column("created_by")] |
| | | public string CreatedBy { get; set; } |
| | | [Column("updated_datetime")] |
| | | public DateTime UpdatedDatetime { get; set; } |
| | | [Column("updated_by")] |
| | | public string UpdatedBy { get; set; } |
| | | [Key] |
| | | [Column("guid")] |
| | | public string Guid { get; set; } |
| | | [Column("sentence_index")] |
| | | public int SentenceIndex { get; set; } |
| | | [Column("context")] |
| | | public string Context { get; set; } |
| | | |
| | | public const string CREATED_DATETIME = "CreatedDatetime"; |
| | | public const string CREATED_BY = "CreatedBy"; |
| | | public const string UPDATED_DATETIME = "UpdatedDatetime"; |
| | | public const string UPDATED_BY = "UpdatedBy"; |
| | | public const string GUID = "Guid"; |
| | | public const string SENTENCE_INDEX = "SentenceIndex"; |
| | | public const string CONTEXT = "Context"; |
| | | |
| | | public const string DB_NAME_SENTENCE = "sentence"; |
| | | public const string DB_NAME_FIELDS="created_datetime,created_by,updated_datetime,updated_by,guid,sentence_index,context"; |
| | | |
| | | public const string DB_CREATED_DATETIME = "created_datetime"; |
| | | public const string DB_CREATED_BY = "created_by"; |
| | | public const string DB_UPDATED_DATETIME = "updated_datetime"; |
| | | public const string DB_UPDATED_BY = "updated_by"; |
| | | public const string DB_GUID = "guid"; |
| | | public const string DB_SENTENCE_INDEX = "sentence_index"; |
| | | public const string DB_CONTEXT = "context"; |
| | | |
| | | |
| | | public static SentenceEntity GetInstance() |
| | | { |
| | | return new SentenceEntity(); |
| | | } |
| | | |
| | | public virtual void CopyFrom(SentenceEntity source) |
| | | { |
| | | CopyFrom(source, true); |
| | | } |
| | | |
| | | public virtual void CopyFrom(SentenceEntity source, bool includeSystemFields) |
| | | { |
| | | if (source == null) |
| | | { |
| | | throw new NullReferenceException("Source entity is null."); |
| | | } |
| | | |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | this.Guid = source.Guid; |
| | | this.SentenceIndex = source.SentenceIndex; |
| | | this.Context = source.Context; |
| | | |
| | | if (includeSystemFields) |
| | | { |
| | | this.CreatedDatetime = source.CreatedDatetime; |
| | | this.CreatedBy = source.CreatedBy; |
| | | this.UpdatedDatetime = source.UpdatedDatetime; |
| | | this.UpdatedBy = source.UpdatedBy; |
| | | } |
| | | } |
| | | |
| | | public override string GetSelectFrom() |
| | | { |
| | | return $" select {DB_NAME_FIELDS} from { DB_NAME_SENTENCE} with(nolock) "; |
| | | } |
| | | |
| | | public override string GetSelectCountFrom(string sqlWhere) |
| | | { |
| | | return $" select count(*) from { DB_NAME_SENTENCE} with(nolock) where 1=1 {sqlWhere}"; |
| | | } |
| | | |
| | | public override string GetSelectTopFrom(int limit, int start,string orderby,string orderbytag, string sqlWhere) |
| | | { |
| | | if (string.IsNullOrEmpty(orderbytag) || orderbytag.Trim() != "desc") orderbytag = "asc"; |
| | | if (string.IsNullOrEmpty(orderby) || !DB_NAME_FIELDS.Contains(orderby)) orderby = DB_GUID ; |
| | | string top = limit > 0 ? $"top {limit}" : ""; |
| | | return $" select {top} {DB_NAME_FIELDS} from (select {DB_NAME_FIELDS} ,row_number() over(order by {orderby} {orderbytag}) as num from { DB_NAME_SENTENCE} with(nolock) where 1=1 {sqlWhere} ) a where num> {limit * (start - 1)}"; |
| | | } |
| | | |
| | | public SentenceEntity Clone() |
| | | { |
| | | SentenceEntity result = new SentenceEntity(); |
| | | result.CopyFrom(this); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CloudBuilder.Novel.Policy |
| | | { |
| | | public partial class NovelPermissionPolicy |
| | | { |
| | | //***BEGIN*** |
| | | |
| | | public const string Book = "Book"; |
| | | public const string Chapter = "Chapter"; |
| | | public const string Sentence = "Sentence"; |
| | | public const string Paragraph = "Paragraph"; |
| | | //***END*** |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CloudBuilder.Novel.Policy |
| | | { |
| | | public partial class NovelPermissionPolicy |
| | | { |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.Service; |
| | | namespace CloudBuilder.Novel.SearchCriteria |
| | | { |
| | | [TypeScript] |
| | | public class BookSearchCriteria: AbstractSearchCriteria |
| | | { |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.Service; |
| | | namespace CloudBuilder.Novel.SearchCriteria |
| | | { |
| | | [TypeScript] |
| | | public class ChapterSearchCriteria: AbstractSearchCriteria |
| | | { |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.Service; |
| | | namespace CloudBuilder.Novel.SearchCriteria |
| | | { |
| | | [TypeScript] |
| | | public class ParagraphSearchCriteria: AbstractSearchCriteria |
| | | { |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using CloudBuilder.Core.Authorization; |
| | | using CloudBuilder.Core.Service; |
| | | namespace CloudBuilder.Novel.SearchCriteria |
| | | { |
| | | [TypeScript] |
| | | public class SentenceSearchCriteria: AbstractSearchCriteria |
| | | { |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | using CloudBuilder.Core.Service; |
| | | |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public interface IBookService :IServiceBase<BookEntity, string ,BookSearchCriteria> |
| | | { |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | using CloudBuilder.Core.Service; |
| | | |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public interface IChapterService :IServiceBase<ChapterEntity, string ,ChapterSearchCriteria> |
| | | { |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | using CloudBuilder.Core.Service; |
| | | |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public interface IParagraphService :IServiceBase<ParagraphEntity, string ,ParagraphSearchCriteria> |
| | | { |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | using CloudBuilder.Novel.Entity; |
| | | using CloudBuilder.Novel.SearchCriteria; |
| | | using CloudBuilder.Core.Service; |
| | | |
| | | namespace CloudBuilder.Novel.Service |
| | | { |
| | | public interface ISentenceService :IServiceBase<SentenceEntity, string ,SentenceSearchCriteria> |
| | | { |
| | | } |
| | | } |