This commit is contained in:
owenchen committed 2026-05-12 10:32:46 +08:00
commit 5959bae57b
56 files changed
+5152

No files matched your search

@@ -0,0 +1,95 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace CloudBuilder.CodeGenerator.Config
{
public class ToolInitConfig
{
private static ToolInitConfig instance = null;
private static string filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config\\tool-init-config.xml");
private static ToolInitConfig Load()
{
if (!System.IO.File.Exists(filename))
{
throw new ValidationException("ToolInitConfig config file not found");
}
StringReader textReader = new StringReader(System.IO.File.ReadAllText(filename, Encoding.UTF8));
XmlSerializer serializer = new XmlSerializer(typeof(ToolInitConfig));
return (ToolInitConfig)serializer.Deserialize(textReader);
}
public static void ClearInstance()
{
instance = null;
}
public static ToolInitConfig GetInstance()
{
if (instance == null)
{
instance = Load();
}
return instance;
}
public string TemplatePath { get; set; }
public string CurrentAssembly { get; set; }
public string Using { get; set; }
public NamespaceObject[] NamespaceObjects { get; set; }
public AssemblyReference[] AssemblyReferences { get; set; }
public string[] ExculdePropertyTypes { get; set; }
public static void Save(ToolInitConfig toolInitConfig)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ToolInitConfig));
string xml = null;
using (MemoryStream stream = new MemoryStream())
{
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
xmlSerializer.Serialize((TextWriter)writer, toolInitConfig);
stream.Seek(0L, SeekOrigin.Begin);
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
xml = reader.ReadToEnd();
}
StreamWriter sw = new StreamWriter(filename, false);
sw.WriteLine(xml);
sw.Close();
sw.Dispose();
}
}
public class AssemblyReference
{
public string AssemblyFileName { get; set; }
}
public class NamespaceObject
{
public const string OUT_FILE_PATH = "OutFilePath";
public const string ASSEMBLY = "Assembly";
public const string NAMESPACE = "Namespace";
public string TemplateType { get; set; }
public string TemplateFileName { get; set; }
public string OutFilePath { get; set; }
public string Assembly { get; set; }
public string Namespace { get; set; }
public string FileNameSuffix { get; set; }
public string FileNamePrefix { get; set; }
}
}
@@ -0,0 +1,354 @@
<?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">
<TemplatePath>D:\NET8\Templates</TemplatePath>
<CurrentAssembly>CloudBuilder.Hr</CurrentAssembly>
<Using>@using CloudBuilder.CodeGenerator.Config;
@using CloudBuilder.CodeGenerator.Data;
@using CloudBuilder.CodeGenerator.Entity;
@using CloudBuilder.Core.Application.Builders;
@using CloudBuilder.Core.DatabaseAccessor.Entity;
@using CloudBuilder.Core.DependencyInjection.Form;
@using CloudBuilder.Core.Extensions;
@using CloudBuilder.Core.Utility;
@using Microsoft.Extensions.DependencyInjection;
@using System.Data;
@using System;
@using System.Reflection;</Using>
<NamespaceObjects>
<NamespaceObject>
<TemplateType>Entity</TemplateType>
<TemplateFileName>IEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Entity</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>Entity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IEntityKey</TemplateType>
<TemplateFileName>IEntityKey.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Entity</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>EntityKey.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IService</TemplateType>
<TemplateFileName>IService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Service</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix>
<FileNamePrefix>I</FileNamePrefix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Permission</TemplateType>
<TemplateFileName>Permission.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Policy</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>RegistEntity</TemplateType>
<TemplateFileName>RegistEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\Entity</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>SearchCriteria</TemplateType>
<TemplateFileName>SearchCriteria.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master\SearchCriteria</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Service</TemplateType>
<TemplateFileName>Service.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Master.Service</OutFilePath>
<Assembly>CloudBuilder.Master</Assembly>
<Namespace>CloudBuilder.Master</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.Master</Assembly>
<Namespace>CloudBuilder.Master</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Controller</TemplateType>
<TemplateFileName>Controller.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Master</OutFilePath>
<Assembly>CloudBuilder.Master.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Master</Namespace>
<FileNameSuffix>Controller.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>TypeScriptService</TemplateType>
<TemplateFileName>TypeScriptService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\service\master</OutFilePath>
<Assembly>CloudBuilder.Master.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Master</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Entity</TemplateType>
<TemplateFileName>IEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>Entity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IEntityKey</TemplateType>
<TemplateFileName>IEntityKey.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>EntityKey.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>IService</TemplateType>
<TemplateFileName>IService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Service</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>Service.auto.cs</FileNameSuffix>
<FileNamePrefix>I</FileNamePrefix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Permission</TemplateType>
<TemplateFileName>Permission.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Policy</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>PermissionPolicy.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>RegistEntity</TemplateType>
<TemplateFileName>RegistEntity.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\Entity</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>RegistEntity.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>SearchCriteria</TemplateType>
<TemplateFileName>SearchCriteria.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security\SearchCriteria</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>SearchCriteria.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Service</TemplateType>
<TemplateFileName>Service.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Security.Service</OutFilePath>
<Assembly>CloudBuilder.Security</Assembly>
<Namespace>CloudBuilder.Security</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.Security</Assembly>
<Namespace>CloudBuilder.Security</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>Controller</TemplateType>
<TemplateFileName>Controller.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\CloudBuilder\CloudBuilder.Web.Entry\Controllers\Security</OutFilePath>
<Assembly>CloudBuilder.Security.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Security</Namespace>
<FileNameSuffix>Controller.auto.cs</FileNameSuffix>
</NamespaceObject>
<NamespaceObject>
<TemplateType>TypeScriptService</TemplateType>
<TemplateFileName>TypeScriptService.cshtml</TemplateFileName>
<OutFilePath>D:\NET8\Webmaster\src\service\security</OutFilePath>
<Assembly>CloudBuilder.Security.Service</Assembly>
<Namespace>CloudBuilder.Web.Entry.Controllers.Security</Namespace>
<FileNameSuffix>.ts</FileNameSuffix>
</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>
<AssemblyReferences>
<AssemblyReference>
<AssemblyFileName>D:\NET8\CloudBuilder\CloudBuilder.Security.Service\bin\Debug\net8.0\CloudBuilder.Security.Service.dll</AssemblyFileName>
</AssemblyReference>
<AssemblyReference>
<AssemblyFileName>D:\NET8\CloudBuilder\CloudBuilder.Security\bin\Debug\net8.0\CloudBuilder.Security.dll</AssemblyFileName>
</AssemblyReference>
</AssemblyReferences>
<ExculdePropertyTypes>
<string>Dictionary</string>
</ExculdePropertyTypes>
</ToolInitConfig>