Compare commits

..

3 Commits

Author SHA1 Message Date
owenchen
fcaca3c3dd ow 2026-08-06 13:15:21 +08:00
owenchen
ce4dcaf33d ow 2026-05-21 14:55:58 +08:00
owenchen
c16793b17b ow 2026-05-19 10:56:43 +08:00
8 changed files with 427 additions and 458 deletions

Binary file not shown.

View File

@ -43,6 +43,7 @@
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" /> <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="Fido2NetLib" Version="1.0.0-alpha" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ToolInitConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ToolInitConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<TemplatePath>D:\NET8\Templates</TemplatePath> <TemplatePath>D:\NET8\Templates</TemplatePath>
<CurrentAssembly>CloudBuilder.Hr</CurrentAssembly> <CurrentAssembly>CloudBuilder.AI</CurrentAssembly>
<Using>@using CloudBuilder.CodeGenerator.Config; <Using>
@using CloudBuilder.CodeGenerator.Config;
@using CloudBuilder.CodeGenerator.Data; @using CloudBuilder.CodeGenerator.Data;
@using CloudBuilder.CodeGenerator.Entity; @using CloudBuilder.CodeGenerator.Entity;
@using CloudBuilder.Core.Application.Builders; @using CloudBuilder.Core.Application.Builders;
@ -13,93 +14,103 @@
@using Microsoft.Extensions.DependencyInjection; @using Microsoft.Extensions.DependencyInjection;
@using System.Data; @using System.Data;
@using System; @using System;
@using System.Reflection;</Using> @using System.Reflection;
</Using>
<NamespaceObjects> <NamespaceObjects>
<NamespaceObject>
<TemplateType>Request</TemplateType>
<TemplateFileName>Request.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Request\AI</OutFilePath>
<Assembly>CloudBuilder.Request</Assembly>
<Namespace>CloudBuilder.Request.AI</Namespace>
<FileNameSuffix>Request.auto.cs</FileNameSuffix>
<FileNamePrefix />
</NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>Entity</TemplateType> <TemplateType>Entity</TemplateType>
<TemplateFileName>IEntity.cshtml</TemplateFileName> <TemplateFileName>IEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Entity</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Entity</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>Entity.auto.cs</FileNameSuffix> <FileNameSuffix>Entity.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>IEntityKey</TemplateType> <TemplateType>IEntityKey</TemplateType>
<TemplateFileName>IEntityKey.cshtml</TemplateFileName> <TemplateFileName>IEntityKey.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Entity</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Entity</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>EntityKey.auto.cs</FileNameSuffix> <FileNameSuffix>EntityKey.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>IService</TemplateType> <TemplateType>IService</TemplateType>
<TemplateFileName>IService.cshtml</TemplateFileName> <TemplateFileName>IService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Service</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Service</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix> <FileNameSuffix>Service.auto.cs</FileNameSuffix>
<FileNamePrefix>I</FileNamePrefix> <FileNamePrefix>I</FileNamePrefix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>Permission</TemplateType> <TemplateType>Permission</TemplateType>
<TemplateFileName>Permission.cshtml</TemplateFileName> <TemplateFileName>Permission.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Policy</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Policy</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix> <FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>RegistEntity</TemplateType> <TemplateType>RegistEntity</TemplateType>
<TemplateFileName>RegistEntity.cshtml</TemplateFileName> <TemplateFileName>RegistEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Entity</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Entity</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix> <FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>SearchCriteria</TemplateType> <TemplateType>SearchCriteria</TemplateType>
<TemplateFileName>SearchCriteria.cshtml</TemplateFileName> <TemplateFileName>SearchCriteria.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\SearchCriteria</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\SearchCriteria</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix> <FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>Service</TemplateType> <TemplateType>Service</TemplateType>
<TemplateFileName>Service.cshtml</TemplateFileName> <TemplateFileName>Service.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master.Service</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI.Service</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix> <FileNameSuffix>Service.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>TypeScript</TemplateType> <TemplateType>TypeScript</TemplateType>
<TemplateFileName>TypeScript.cshtml</TemplateFileName> <TemplateFileName>TypeScript.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\data\auto</OutFilePath> <OutFilePath>D:\MAFAI\WebVue\src\data\auto</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly> <Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.Master</Namespace> <Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>.ts</FileNameSuffix> <FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>Controller</TemplateType> <TemplateType>Controller</TemplateType>
<TemplateFileName>Controller.cshtml</TemplateFileName> <TemplateFileName>Controller.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Master</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Ai</OutFilePath>
<Assembly>CloudBuilder.Master.Service</Assembly> <Assembly>CloudBuilder.AI.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Master</Namespace> <Namespace>CloudBuilder.Web.Entry.Controllers.Ai</Namespace>
<FileNameSuffix>Controller.auto.cs</FileNameSuffix> <FileNameSuffix>Controller.auto.cs</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>TypeScriptService</TemplateType> <TemplateType>TypeScriptService</TemplateType>
<TemplateFileName>TypeScriptService.cshtml</TemplateFileName> <TemplateFileName>TypeScriptService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\service\master</OutFilePath> <OutFilePath>D:\MAFAI\WebVue\src\service\Ai</OutFilePath>
<Assembly>CloudBuilder.Master.Service</Assembly> <Assembly>CloudBuilder.AI.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Master</Namespace> <Namespace>CloudBuilder.Web.Entry.Controllers.Ai</Namespace>
<FileNameSuffix>.ts</FileNameSuffix> <FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>Entity</TemplateType> <TemplateType>Entity</TemplateType>
<TemplateFileName>IEntity.cshtml</TemplateFileName> <TemplateFileName>IEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>Entity.auto.cs</FileNameSuffix> <FileNameSuffix>Entity.auto.cs</FileNameSuffix>
@ -107,7 +118,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>IEntityKey</TemplateType> <TemplateType>IEntityKey</TemplateType>
<TemplateFileName>IEntityKey.cshtml</TemplateFileName> <TemplateFileName>IEntityKey.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>EntityKey.auto.cs</FileNameSuffix> <FileNameSuffix>EntityKey.auto.cs</FileNameSuffix>
@ -115,7 +126,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>IService</TemplateType> <TemplateType>IService</TemplateType>
<TemplateFileName>IService.cshtml</TemplateFileName> <TemplateFileName>IService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Service</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security\Service</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix> <FileNameSuffix>Service.auto.cs</FileNameSuffix>
@ -124,7 +135,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>Permission</TemplateType> <TemplateType>Permission</TemplateType>
<TemplateFileName>Permission.cshtml</TemplateFileName> <TemplateFileName>Permission.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Policy</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security\Policy</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix> <FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix>
@ -132,7 +143,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>RegistEntity</TemplateType> <TemplateType>RegistEntity</TemplateType>
<TemplateFileName>RegistEntity.cshtml</TemplateFileName> <TemplateFileName>RegistEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix> <FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix>
@ -140,7 +151,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>SearchCriteria</TemplateType> <TemplateType>SearchCriteria</TemplateType>
<TemplateFileName>SearchCriteria.cshtml</TemplateFileName> <TemplateFileName>SearchCriteria.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\SearchCriteria</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security\SearchCriteria</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix> <FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix>
@ -148,7 +159,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>Service</TemplateType> <TemplateType>Service</TemplateType>
<TemplateFileName>Service.cshtml</TemplateFileName> <TemplateFileName>Service.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security.Service</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Security.Service</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix> <FileNameSuffix>Service.auto.cs</FileNameSuffix>
@ -156,7 +167,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>TypeScript</TemplateType> <TemplateType>TypeScript</TemplateType>
<TemplateFileName>TypeScript.cshtml</TemplateFileName> <TemplateFileName>TypeScript.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\data\auto</OutFilePath> <OutFilePath>D:\MAFAI\WebVue\src\data\auto</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly> <Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace> <Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>.ts</FileNameSuffix> <FileNameSuffix>.ts</FileNameSuffix>
@ -164,7 +175,7 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>Controller</TemplateType> <TemplateType>Controller</TemplateType>
<TemplateFileName>Controller.cshtml</TemplateFileName> <TemplateFileName>Controller.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Security</OutFilePath> <OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Security</OutFilePath>
<Assembly>CloudBuilder.Security.Service</Assembly> <Assembly>CloudBuilder.Security.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Security</Namespace> <Namespace>CloudBuilder.Web.Entry.Controllers.Security</Namespace>
<FileNameSuffix>Controller.auto.cs</FileNameSuffix> <FileNameSuffix>Controller.auto.cs</FileNameSuffix>
@ -172,180 +183,18 @@
<NamespaceObject> <NamespaceObject>
<TemplateType>TypeScriptService</TemplateType> <TemplateType>TypeScriptService</TemplateType>
<TemplateFileName>TypeScriptService.cshtml</TemplateFileName> <TemplateFileName>TypeScriptService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\service\security</OutFilePath> <OutFilePath>D:\MAFAI\WebVue\src\service\security</OutFilePath>
<Assembly>CloudBuilder.Security.Service</Assembly> <Assembly>CloudBuilder.Security.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Security</Namespace> <Namespace>CloudBuilder.Web.Entry.Controllers.Security</Namespace>
<FileNameSuffix>.ts</FileNameSuffix> <FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject> </NamespaceObject>
<NamespaceObject>
<TemplateType>Entity</TemplateType>
<TemplateFileName>IEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr\Entity</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>Entity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IEntityKey</TemplateType>
<TemplateFileName>IEntityKey.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr\Entity</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>EntityKey.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IService</TemplateType>
<TemplateFileName>IService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr\Service</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix>
<FileNamePrefix>I</FileNamePrefix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Permission</TemplateType>
<TemplateFileName>Permission.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr\Policy</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>RegistEntity</TemplateType>
<TemplateFileName>RegistEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr\Entity</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>SearchCriteria</TemplateType>
<TemplateFileName>SearchCriteria.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr\SearchCriteria</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Service</TemplateType>
<TemplateFileName>Service.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Hr.Service</OutFilePath>
<Assembly>CloudBuilder.Hr</Assembly>
<Namespace>CloudBuilder.Hr</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.Hr</Assembly>
<Namespace>CloudBuilder.Hr</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Controller</TemplateType>
<TemplateFileName>Controller.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Hr</OutFilePath>
<Assembly>CloudBuilder.Hr.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Hr</Namespace>
<FileNameSuffix>Controller.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>TypeScriptService</TemplateType>
<TemplateFileName>TypeScriptService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\service\hr</OutFilePath>
<Assembly>CloudBuilder.Hr.Service</Assembly>
<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> </NamespaceObjects>
<AssemblyReferences> <AssemblyReferences>
<AssemblyReference> <AssemblyReference>
<AssemblyFileName>D:\NET8\CloudBuilder\CloudBuilder.Security.Service\bin\Debug\net8.0\CloudBuilder.Security.Service.dll</AssemblyFileName> <AssemblyFileName>D:\MAFAI\CloudBuilder\CloudBuilder.Security.Service\bin\Debug\net8.0\CloudBuilder.Security.Service.dll</AssemblyFileName>
</AssemblyReference> </AssemblyReference>
<AssemblyReference> <AssemblyReference>
<AssemblyFileName>D:\NET8\CloudBuilder\CloudBuilder.Security\bin\Debug\net8.0\CloudBuilder.Security.dll</AssemblyFileName> <AssemblyFileName>D:\MAFAI\CloudBuilder\CloudBuilder.Security\bin\Debug\net8.0\CloudBuilder.Security.dll</AssemblyFileName>
</AssemblyReference> </AssemblyReference>
</AssemblyReferences> </AssemblyReferences>
<ExculdePropertyTypes> <ExculdePropertyTypes>

View File

@ -3,15 +3,7 @@
"DbContexts": { "DbContexts": {
"MasterDbContext": { "MasterDbContext": {
"DbContextTypeName": "MasterDbContext", "DbContextTypeName": "MasterDbContext",
"ConnectionString": "Server=localhost\\SQLEXPRESS;Database=Furion_dev;User=sa;Password=owen123456;MultipleActiveResultSets=True;TrustServerCertificate=true", "ConnectionString": "Server=localhost\\SQLEXPRESS;Database=Furion;User=sa;Password=owen123456;MultipleActiveResultSets=True;TrustServerCertificate=true",
"DatabaseType": "SqlServer",
"LazyLoadingProxiesEnabled": true,
"AuditEntityEnabled": true,
"AutoMigrationEnabled": true
},
"SecondaryDbContext": {
"DbContextTypeName": "SecondaryDbContext",
"ConnectionString": "Server=localhost\\SQLEXPRESS;Database=Furion_dev;User=sa;Password=owen123456;MultipleActiveResultSets=True;TrustServerCertificate=true",
"DatabaseType": "SqlServer", "DatabaseType": "SqlServer",
"LazyLoadingProxiesEnabled": true, "LazyLoadingProxiesEnabled": true,
"AuditEntityEnabled": true, "AuditEntityEnabled": true,

View File

@ -36,6 +36,7 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" /> <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" />
<PackageReference Include="Fido2NetLib" Version="1.0.0-alpha" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ToolInitConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ToolInitConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<TemplatePath>D:\NET8\Templates</TemplatePath> <TemplatePath>D:\NET8\Templates</TemplatePath>
<CurrentAssembly>CloudBuilder.Hr</CurrentAssembly> <CurrentAssembly>CloudBuilder.AI</CurrentAssembly>
<Using>@using CloudBuilder.CodeGenerator.Config; <Using>
@using CloudBuilder.CodeGenerator.Config;
@using CloudBuilder.CodeGenerator.Data; @using CloudBuilder.CodeGenerator.Data;
@using CloudBuilder.CodeGenerator.Entity; @using CloudBuilder.CodeGenerator.Entity;
@using CloudBuilder.Core.Application.Builders; @using CloudBuilder.Core.Application.Builders;
@ -13,8 +14,99 @@
@using Microsoft.Extensions.DependencyInjection; @using Microsoft.Extensions.DependencyInjection;
@using System.Data; @using System.Data;
@using System; @using System;
@using System.Reflection;</Using> @using System.Reflection;
</Using>
<NamespaceObjects> <NamespaceObjects>
<NamespaceObject>
<TemplateType>Request</TemplateType>
<TemplateFileName>Request.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Request\AI</OutFilePath>
<Assembly>CloudBuilder.Request</Assembly>
<Namespace>CloudBuilder.Request.AI</Namespace>
<FileNameSuffix>Request.auto.cs</FileNameSuffix>
<FileNamePrefix />
</NamespaceObject>
<NamespaceObject>
<TemplateType>Entity</TemplateType>
<TemplateFileName>IEntity.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Entity</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>Entity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IEntityKey</TemplateType>
<TemplateFileName>IEntityKey.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Entity</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>EntityKey.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IService</TemplateType>
<TemplateFileName>IService.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Service</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix>
<FileNamePrefix>I</FileNamePrefix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Permission</TemplateType>
<TemplateFileName>Permission.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Policy</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>RegistEntity</TemplateType>
<TemplateFileName>RegistEntity.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\Entity</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>SearchCriteria</TemplateType>
<TemplateFileName>SearchCriteria.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI\SearchCriteria</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Service</TemplateType>
<TemplateFileName>Service.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.AI.Service</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>TypeScript</TemplateType>
<TemplateFileName>TypeScript.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\WebVue\src\data\auto</OutFilePath>
<Assembly>CloudBuilder.AI</Assembly>
<Namespace>CloudBuilder.AI</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Controller</TemplateType>
<TemplateFileName>Controller.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Ai</OutFilePath>
<Assembly>CloudBuilder.AI.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Ai</Namespace>
<FileNameSuffix>Controller.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>TypeScriptService</TemplateType>
<TemplateFileName>TypeScriptService.cshtml</TemplateFileName>
<OutFilePath>D:\MAFAI\WebVue\src\service\Ai</OutFilePath>
<Assembly>CloudBuilder.AI.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Ai</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject>
<NamespaceObject> <NamespaceObject>
<TemplateType>Request</TemplateType> <TemplateType>Request</TemplateType>
<TemplateFileName>Request.cshtml</TemplateFileName> <TemplateFileName>Request.cshtml</TemplateFileName>

View File

@ -23,6 +23,14 @@ public partial class Program
{ {
try try
{ {
string logFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log\\log.txt");
if (!Directory.Exists(Path.GetDirectoryName(logFileName))) Directory.CreateDirectory(Path.GetDirectoryName(logFileName));
using (StreamWriter w = File.AppendText(logFileName))
{
w.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}]Start:");
}
Assembly assembly = null; Assembly assembly = null;
if (args != null && args.Length > 0) if (args != null && args.Length > 0)
@ -33,15 +41,25 @@ public partial class Program
if (assembly == null) return; if (assembly == null) return;
using (StreamWriter w = File.AppendText(logFileName))
{
w.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}]Succeed:" + assembly.FullName);
}
ModelData modelData = null; ModelData modelData = null;
ToolInitConfig toolInitConfig = ToolInitConfig.GetInstance(); ToolInitConfig toolInitConfig = ToolInitConfig.GetInstance();
string template = null; string template = null;
string outputText = null; string outputText = null;
string outputFileName = null; string outputFileName = null;
string logFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log\\log.txt");
ClassInfo[] dataInfos = RazorEngineHelper.PackTypeScriptClassInfo(assembly); ClassInfo[] dataInfos = RazorEngineHelper.PackTypeScriptClassInfo(assembly);
using (StreamWriter w = File.AppendText(logFileName))
{
w.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}]PackTypeScriptClassInfo:" + dataInfos.Count());
}
foreach (var item in dataInfos) foreach (var item in dataInfos)
{ {
modelData = new ModelData(); modelData = new ModelData();
@ -77,6 +95,10 @@ public partial class Program
ClassInfo[] classInfos = RazorEngineHelper.PackIServiceClassInfo(assembly); ClassInfo[] classInfos = RazorEngineHelper.PackIServiceClassInfo(assembly);
using (StreamWriter w = File.AppendText(logFileName))
{
w.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}]PackIServiceClassInfo:" + classInfos.Count());
}
foreach (var item in classInfos) foreach (var item in classInfos)
{ {
@ -94,9 +116,21 @@ public partial class Program
modelData.ClassInfos = new ClassInfo[] { item }; modelData.ClassInfos = new ClassInfo[] { item };
modelData.NamespaceObject = toolInitConfig.NamespaceObjects.Where(x => x.TemplateType == "Controller" && x.Assembly == Path.GetFileNameWithoutExtension(assembly.Location)).FirstOrDefault(); modelData.NamespaceObject = toolInitConfig.NamespaceObjects.Where(x => x.TemplateType == "Controller" && x.Assembly == Path.GetFileNameWithoutExtension(assembly.Location)).FirstOrDefault();
using (StreamWriter w = File.AppendText(logFileName))
{
w.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}]Controller:" + (modelData.NamespaceObject == null ? ("配置文件不存在【TemplateType、Assembly】" + Path.GetFileNameWithoutExtension(assembly.Location)) : modelData.NamespaceObject.OutFilePath));
}
if (modelData.NamespaceObject == null) continue; if (modelData.NamespaceObject == null) continue;
outputFileName = Path.Combine(modelData.NamespaceObject.OutFilePath, item.ClassName.Replace("Service", "") + modelData.NamespaceObject.FileNameSuffix); outputFileName = Path.Combine(modelData.NamespaceObject.OutFilePath, item.ClassName.Replace("Service", "") + modelData.NamespaceObject.FileNameSuffix);
using (StreamWriter w = File.AppendText(logFileName))
{
w.WriteLine($"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}]Controller:" + (string.IsNullOrEmpty(outputFileName) ? "空文件" : outputFileName));
}
if (string.IsNullOrEmpty(outputFileName)) continue; if (string.IsNullOrEmpty(outputFileName)) continue;
template = File.ReadAllText(Path.Combine(toolInitConfig.TemplatePath, modelData.NamespaceObject.TemplateFileName)); template = File.ReadAllText(Path.Combine(toolInitConfig.TemplatePath, modelData.NamespaceObject.TemplateFileName));

Binary file not shown.