mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-21 14:51:58 +08:00
1179 lines
49 KiB
Plaintext
1179 lines
49 KiB
Plaintext
<%@ Template Language="C#" TargetLanguage="Text" Debug="True" OutputType="None" %>
|
|
|
|
<%@ Assembly Name="SchemaExplorer" %>
|
|
<%@ Assembly Name="CodeSmith.CustomProperties" %>
|
|
<%@ Assembly Name="Mono.Cecil" Path="..\Libraries" %>
|
|
<%@ Assembly Name="ICSharpCode.NRefactory" Path="..\Libraries" %>
|
|
<%@ Assembly Name="ICSharpCode.NRefactory.CSharp" Path="..\Libraries" %>
|
|
<%@ Assembly Src="Common\Model.cs" %>
|
|
<%@ Assembly Src="Common\Extensions.cs" %>
|
|
<%@ Assembly Src="Common\Generator.cs" %>
|
|
<%@ Assembly Src="Common\Parser.cs" %>
|
|
|
|
<%@ Import Namespace="System.Collections.Generic" %>
|
|
<%@ Import Namespace="System.IO" %>
|
|
<%@ Import Namespace="System.Linq" %>
|
|
<%@ Import Namespace="System.Text" %>
|
|
<%@ Import Namespace="System.Text.RegularExpressions" %>
|
|
<%@ Import Namespace="SchemaMapper" %>
|
|
|
|
<%@ Property Name="Database"
|
|
Type="SchemaExplorer.DatabaseSchema"
|
|
Category="1.数据库"
|
|
OnChanged="OnSourceDatabaseChanged"
|
|
Description="数据库" %>
|
|
<%@ Property Name="Namespace"
|
|
Type="System.String"
|
|
Category="2.1 命名空间"
|
|
Description="命名空间"%>
|
|
<%@ Property Name="DbName"
|
|
Type="System.String"
|
|
Category="2.2 数据库名"
|
|
Description="数据库名称,用于创建工作单元及其它类型名称,设置.将自动获取数据库名"%>
|
|
|
|
<%@ Property Name="TableNaming"
|
|
Type="SchemaMapper.TableNaming"
|
|
Category="3.Hints"
|
|
Default="Singular"
|
|
Description="Provide generator a hint as to how the tables are named." %>
|
|
<%@ Property Name="EntityNaming"
|
|
Type="SchemaMapper.EntityNaming"
|
|
Category="3.Hints"
|
|
Default="Singular"
|
|
Description="Tell generator how the entities are to be named." %>
|
|
<%@ Property Name="RelationshipNaming"
|
|
Type="SchemaMapper.RelationshipNaming"
|
|
Category="3.Hints"
|
|
Default="Plural"
|
|
Description="Tell generator how the relationships are to be named." %>
|
|
<%@ Property Name="ContextNaming"
|
|
Type="SchemaMapper.ContextNaming"
|
|
Category="3.Hints"
|
|
Default="Plural"
|
|
Description="Tell generator how the context properties are to be named." %>
|
|
|
|
<%@ Property Name="IgnoreList"
|
|
Type="CodeSmith.CustomProperties.StringCollection"
|
|
Category="4.Customization"
|
|
Default="sysdiagrams$"
|
|
Optional="True"
|
|
Description="List of regular expressions to ignore tables, views and commands when generating mapping." %>
|
|
<%@ Property Name="InclusionMode"
|
|
Type="Boolean"
|
|
Category="4.Customization"
|
|
Default="False"
|
|
Optional="True"
|
|
Description="Change the IgnoreList to be a list of table to include instead of ignore." %>
|
|
<%@ Property Name="CleanExpressions"
|
|
Type="CodeSmith.CustomProperties.StringCollection"
|
|
Category="4.Customization"
|
|
Default="^(sp|tbl|udf|vw)_"
|
|
Optional="True"
|
|
Description="List of regular expressions to clean table, view and column names." %>
|
|
|
|
<%@ Register Name="EntityBaseClass"
|
|
Template="Templates\Domains\Entity.Base.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="EntityClass"
|
|
Template="Templates\Domains\Entity.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="FactoryClass"
|
|
Template="Templates\Domains\Factory.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IRepositoryClass"
|
|
Template="Templates\Domains\IRepository.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="RepositoryClass"
|
|
Template="Templates\Datas\Repository.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PoClass"
|
|
Template="Templates\PersistObjects\Datas\Po.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PoExtensionClass"
|
|
Template="Templates\PersistObjects\Datas\PoExtension.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="SqlServerPoMappingClass"
|
|
Template="Templates\PersistObjects\Datas\SqlServer\PoMapping.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PgSqlPoMappingClass"
|
|
Template="Templates\PersistObjects\Datas\PgSql\PoMapping.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PoIRepositoryClass"
|
|
Template="Templates\PersistObjects\Domains\IRepository.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PoRepositoryClass"
|
|
Template="Templates\PersistObjects\Datas\Repository.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IStoreClass"
|
|
Template="Templates\PersistObjects\Datas\IStore.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="StoreClass"
|
|
Template="Templates\PersistObjects\Datas\Store.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PoServiceClass"
|
|
Template="Templates\PersistObjects\Services\Service.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IUnitOfWorkClass"
|
|
Template="Templates\Datas\IUnitOfWork.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="SqlServerUnitOfWorkClass"
|
|
Template="Templates\Datas\SqlServer\UnitOfWork.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="SqlServerMappingClass"
|
|
Template="Templates\Datas\SqlServer\Mapping.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PgSqlUnitOfWorkClass"
|
|
Template="Templates\Datas\PgSql\UnitOfWork.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="PgSqlMappingClass"
|
|
Template="Templates\Datas\PgSql\Mapping.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="MySqlUnitOfWorkClass"
|
|
Template="Templates\Datas\MySql\UnitOfWork.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="MySqlMappingClass"
|
|
Template="Templates\Datas\MySql\Mapping.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IocConfigClass"
|
|
Template="Templates\Services\IocConfig.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DtoClass"
|
|
Template="Templates\Services\Dto.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DtoExtensionClass"
|
|
Template="Templates\Services\DtoExtension.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="QueryClass"
|
|
Template="Templates\Services\Query.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IServiceClass"
|
|
Template="Templates\Services\IService.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="ServiceClass"
|
|
Template="Templates\Services\Service.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="ApiControllerClass"
|
|
Template="Templates\Presentation\Controllers\ApiController.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IndexViewClass"
|
|
Template="Templates\Presentation\Pages\IndexView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogIndexViewClass"
|
|
Template="Templates\Presentation\Pages\DialogIndexView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="QueryViewClass"
|
|
Template="Templates\Presentation\Pages\QueryView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="EditViewClass"
|
|
Template="Templates\Presentation\Pages\EditView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogEditViewClass"
|
|
Template="Templates\Presentation\Pages\DialogEditView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DetailViewClass"
|
|
Template="Templates\Presentation\Pages\DetailView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogDetailViewClass"
|
|
Template="Templates\Presentation\Pages\DialogDetailView.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="IndexComponentClass"
|
|
Template="Templates\Presentation\Typings\IndexComponent.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogIndexComponentClass"
|
|
Template="Templates\Presentation\Typings\DialogIndexComponent.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="EditComponentClass"
|
|
Template="Templates\Presentation\Typings\EditComponent.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogEditComponentClass"
|
|
Template="Templates\Presentation\Typings\DialogEditComponent.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DetailComponentClass"
|
|
Template="Templates\Presentation\Typings\DetailComponent.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogDetailComponentClass"
|
|
Template="Templates\Presentation\Typings\DialogDetailComponent.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="ModuleClass"
|
|
Template="Templates\Presentation\Typings\Module.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogModuleClass"
|
|
Template="Templates\Presentation\Typings\DialogModule.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="RoutingClass"
|
|
Template="Templates\Presentation\Typings\Routing.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DialogRoutingClass"
|
|
Template="Templates\Presentation\Typings\DialogRouting.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="QueryModelClass"
|
|
Template="Templates\Presentation\Typings\Query.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="ViewModelClass"
|
|
Template="Templates\Presentation\Typings\ViewModel.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="ItemGroupClass"
|
|
Template="Templates\Domains\ItemGroup.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="EntityTestClass"
|
|
Template="Templates\Tests\EntityTest.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="EntityTestDataClass"
|
|
Template="Templates\Tests\EntityTest.Data.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="DtoTestClass"
|
|
Template="Templates\Tests\DtoTest.cst"
|
|
MergeProperties="False" %>
|
|
<%@ Register Name="ServiceTestClass"
|
|
Template="Templates\Tests\ServiceTest.cst"
|
|
MergeProperties="False" %>
|
|
<% Generate(); %>
|
|
|
|
<script runat="template">
|
|
public void Generate()
|
|
{
|
|
//创建生成器
|
|
Generator generator = new Generator();
|
|
|
|
//设置命名规则
|
|
generator.Settings.TableNaming = TableNaming;
|
|
generator.Settings.EntityNaming = EntityNaming;
|
|
generator.Settings.RelationshipNaming = RelationshipNaming;
|
|
generator.Settings.ContextNaming = ContextNaming;
|
|
|
|
//设置忽略列表
|
|
foreach(string s in IgnoreList)
|
|
if (!string.IsNullOrEmpty(s))
|
|
generator.Settings.IgnoreExpressions.Add(s);
|
|
foreach(string s in CleanExpressions)
|
|
if (!string.IsNullOrEmpty(s))
|
|
generator.Settings.CleanExpressions.Add(s);
|
|
|
|
//设置项处理完成事件
|
|
generator.SchemaItemProcessed += OnSchemaItemProcessed;
|
|
|
|
//获取实体上下文
|
|
EntityContext context = generator.Generate(Database);
|
|
|
|
//创建Ioc配置
|
|
CreateIocConfig( context );
|
|
//创建实体
|
|
CreateEntity(context);
|
|
//创建工厂
|
|
CreateFactory(context);
|
|
//创建仓储接口
|
|
CreateIRepository(context);
|
|
//创建仓储
|
|
CreateRepository( context );
|
|
//创建持久对象
|
|
CreatePo( context );
|
|
//创建持久对象扩展
|
|
CreatePoExtension( context );
|
|
//创建持久对象Sql Server映射
|
|
CreateSqlServerPoMapping(context);
|
|
//创建持久对象PgSql映射
|
|
CreatePgSqlPoMapping(context);
|
|
//创建持久化对象仓储接口
|
|
CreatePoIRepository(context);
|
|
//创建持久化对象仓储
|
|
CreatePoRepository( context );
|
|
//创建持久化应用服务实现
|
|
CreatePoService( context );
|
|
//创建持久化对象存储接口
|
|
CreateIStore( context );
|
|
//创建持久化对象存储
|
|
CreateStore( context );
|
|
//创建工作单元接口
|
|
CreateIUnitOfWork(context);
|
|
//创建Sql Server工作单元
|
|
CreateSqlServerUnitOfWork(context);
|
|
//创建Sql Server映射
|
|
CreateSqlServerMapping(context);
|
|
//创建PgSql工作单元
|
|
CreatePgSqlUnitOfWork(context);
|
|
//创建PgSql映射
|
|
CreatePgSqlMapping(context);
|
|
//创建MySql工作单元
|
|
CreateMySqlUnitOfWork(context);
|
|
//创建MySql映射
|
|
CreateMySqlMapping(context);
|
|
//创建Dto
|
|
CreateDto( context );
|
|
//创建Dto扩展
|
|
CreateDtoExtension( context );
|
|
//创建查询参数
|
|
CreateQuery( context );
|
|
//创建应用服务接口
|
|
CreateIService( context );
|
|
//创建应用服务实现
|
|
CreateService( context );
|
|
//创建Api控制器
|
|
CreateApiController( context );
|
|
//创建Index视图
|
|
CreateIndexView( context );
|
|
//创建弹出层Index视图
|
|
CreateDialogIndexView( context );
|
|
//创建Query视图
|
|
CreateQueryView( context );
|
|
//创建Edit视图
|
|
CreateEditView( context );
|
|
//创建弹出层Edit视图
|
|
CreateDialogEditView( context );
|
|
//创建Detail视图
|
|
CreateDetailView( context );
|
|
//创建弹出层Detail视图
|
|
CreateDialogDetailView( context );
|
|
//创建Index组件
|
|
CreateIndexComponent( context );
|
|
//创建弹出层Index组件
|
|
CreateDialogIndexComponent( context );
|
|
//创建Edit组件
|
|
CreateEditComponent( context );
|
|
//创建弹出层Edit组件
|
|
CreateDialogEditComponent( context );
|
|
//创建Detail组件
|
|
CreateDetailComponent( context );
|
|
//创建弹出层Detail组件
|
|
CreateDialogDetailComponent( context );
|
|
//创建angular模块
|
|
CreateModule( context );
|
|
//创建弹出层angular模块
|
|
CreateDialogModule( context );
|
|
//创建angular路由
|
|
CreateRouting( context );
|
|
//创建弹出层angular路由
|
|
CreateDialogRouting( context );
|
|
//创建angular查询参数
|
|
CreateQueryModel( context );
|
|
//创建angular视图模型
|
|
CreateViewModel( context );
|
|
//创建实体测试
|
|
CreateEntityTest( context );
|
|
//创建实体测试数据
|
|
CreateEntityTestData( context );
|
|
//创建Dto测试
|
|
CreateDtoTest( context );
|
|
//创建应用服务测试
|
|
CreateServiceTest( context );
|
|
//创建项目嵌套设置
|
|
CreateItemGroup(context);
|
|
|
|
//注册引用
|
|
this.RegisterReference("System.Configuration");
|
|
this.RegisterReference("System.Data");
|
|
this.RegisterReference("System.Data.Entity");
|
|
this.RegisterReference("System.Runtime.Serialization");
|
|
this.RegisterReference("EntityFramework");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取工作单元接口命名空间
|
|
/// </summary>
|
|
private string GetIUnitOfWorkNamespace(EntityContext entityContext){
|
|
return Namespace == "." ? StringUtil.ToPlural( GetDbName(entityContext) ) : Namespace;
|
|
}
|
|
|
|
//获取路径
|
|
private string GetPath( string className,string directory = "",string extension = "cs" ){
|
|
string path = Path.GetFullPath(@".\02-Result");
|
|
if( string.IsNullOrWhiteSpace( directory ) == false )
|
|
path += @"\" + directory;
|
|
string file = className + "." + extension;
|
|
return Path.Combine(path, file);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取数据库名称
|
|
/// </summary>
|
|
private string GetDbName( EntityContext entityContext ){
|
|
if( DbName == "." )
|
|
return entityContext.DatabaseName;
|
|
return DbName;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取工作单元名称
|
|
/// </summary>
|
|
private string GetUnitOfWork( EntityContext entityContext ){
|
|
return GetDbName(entityContext) + "UnitOfWork";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取架构名
|
|
/// </summary>
|
|
private string GetSchema( Entity entity ){
|
|
if( string.IsNullOrWhiteSpace( entity.TableName ) )
|
|
return "default";
|
|
return entity.TableSchema;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取命名空间
|
|
/// </summary>
|
|
private string GetNamespace( Entity entity ){
|
|
return Namespace;
|
|
}
|
|
|
|
//创建实体
|
|
public void CreateEntity(EntityContext entityContext)
|
|
{
|
|
EntityBaseClass generatedClass = this.Create<EntityBaseClass>();
|
|
this.CopyPropertiesTo(generatedClass);
|
|
EntityClass editableClass = this.Create<EntityClass>();
|
|
this.CopyPropertiesTo(editableClass);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
//创建可编辑文件
|
|
string className = entity.ClassName;
|
|
editableClass.Entity = entity;
|
|
editableClass.Namespace = GetNamespace(entity);
|
|
string editablePath = GetPath(className,string.Format("Domains\\{0}\\Models",GetSchema(entity)));
|
|
editableClass.RenderToFile(editablePath, true);
|
|
|
|
//创建基础文件
|
|
generatedClass.Entity = entity;
|
|
generatedClass.Namespace = GetNamespace(entity);
|
|
generatedClass.RenderToFile(GetPath(className+ ".Base", string.Format("Domains\\{0}\\Models",GetSchema(entity)) ), editablePath, true);
|
|
}
|
|
}
|
|
|
|
//创建工厂
|
|
public void CreateFactory(EntityContext entityContext)
|
|
{
|
|
FactoryClass result = this.Create<FactoryClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Factory", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Domains\\{0}\\Factories",GetSchema(entity))), true);
|
|
}
|
|
}
|
|
|
|
//创建仓储接口
|
|
public void CreateIRepository(EntityContext entityContext){
|
|
IRepositoryClass result = this.Create<IRepositoryClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "I{0}Repository", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Domains\\{0}\\Repositories",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建仓储
|
|
public void CreateRepository(EntityContext entityContext)
|
|
{
|
|
RepositoryClass result = this.Create<RepositoryClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Repository", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.UnitOfWork = GetUnitOfWork(entityContext);
|
|
result.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
result.RenderToFile(GetPath(className, string.Format("Datas\\Repositories\\{0}",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久对象
|
|
public void CreatePo(EntityContext entityContext)
|
|
{
|
|
PoClass result = this.Create<PoClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Po", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Pos\\{0}",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久对象扩展
|
|
public void CreatePoExtension(EntityContext entityContext)
|
|
{
|
|
PoExtensionClass result = this.Create<PoExtensionClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "Extension.{0}Po", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Pos\\{0}\\Extensions",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久对象Sql Server映射
|
|
public void CreateSqlServerPoMapping(EntityContext entityContext)
|
|
{
|
|
SqlServerPoMappingClass result = this.Create<SqlServerPoMappingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}PoMap", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Mappings\\{0}\\SqlServer",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久对象PgSql映射
|
|
public void CreatePgSqlPoMapping(EntityContext entityContext)
|
|
{
|
|
PgSqlPoMappingClass result = this.Create<PgSqlPoMappingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}PoMap", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Mappings\\{0}\\PgSql",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建创建持久化对象仓储接口
|
|
public void CreatePoIRepository(EntityContext entityContext){
|
|
PoIRepositoryClass result = this.Create<PoIRepositoryClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "I{0}Repository", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Domains\\{0}\\Repositories",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久化对象仓储
|
|
public void CreatePoRepository(EntityContext entityContext)
|
|
{
|
|
PoRepositoryClass result = this.Create<PoRepositoryClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Repository", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.UnitOfWork = GetUnitOfWork(entityContext);
|
|
result.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Repositories\\{0}",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久化对象存储接口
|
|
public void CreateIStore(EntityContext entityContext)
|
|
{
|
|
IStoreClass result = this.Create<IStoreClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "I{0}PoStore", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.UnitOfWork = GetUnitOfWork(entityContext);
|
|
result.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Stores\\Abstractions\\{0}",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久化对象存储
|
|
public void CreateStore(EntityContext entityContext)
|
|
{
|
|
StoreClass result = this.Create<StoreClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}PoStore", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.UnitOfWork = GetUnitOfWork(entityContext);
|
|
result.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Datas\\Stores\\Implements\\{0}",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建持久化应用服务实现
|
|
public void CreatePoService(EntityContext entityContext)
|
|
{
|
|
PoServiceClass result = this.Create<PoServiceClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Service",entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.UnitOfWork = GetUnitOfWork(entityContext);
|
|
result.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
result.RenderToFile(GetPath(className,string.Format("Persists\\Services\\{0}",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建工作单元接口
|
|
public void CreateIUnitOfWork(EntityContext entityContext)
|
|
{
|
|
IUnitOfWorkClass context = this.Create<IUnitOfWorkClass>();
|
|
this.CopyPropertiesTo(context);
|
|
string className = "I" + GetUnitOfWork(entityContext);
|
|
context.UnitOfWork = className;
|
|
context.Namespace = GetIUnitOfWorkNamespace(entityContext);
|
|
context.RenderToFile(GetPath(className,"Datas"), true);
|
|
}
|
|
|
|
//创建Sql Server工作单元
|
|
public void CreateSqlServerUnitOfWork(EntityContext entityContext)
|
|
{
|
|
SqlServerUnitOfWorkClass context = this.Create<SqlServerUnitOfWorkClass>();
|
|
this.CopyPropertiesTo(context);
|
|
string className = GetUnitOfWork(entityContext);
|
|
context.UnitOfWork = className;
|
|
context.EntityContext = entityContext;
|
|
context.DbName = GetDbName( entityContext );
|
|
context.Namespace = GetNamespace( entityContext.Entities.FirstOrDefault() );
|
|
context.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
context.RenderToFile(GetPath(className,"Datas\\UnitOfWorks\\SqlServer"), true);
|
|
}
|
|
|
|
//创建Sql Server映射
|
|
public void CreateSqlServerMapping(EntityContext entityContext)
|
|
{
|
|
SqlServerMappingClass result = this.Create<SqlServerMappingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Map", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Datas\\Mappings\\{0}\\SqlServer",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建PgSql工作单元
|
|
public void CreatePgSqlUnitOfWork(EntityContext entityContext)
|
|
{
|
|
PgSqlUnitOfWorkClass context = this.Create<PgSqlUnitOfWorkClass>();
|
|
this.CopyPropertiesTo(context);
|
|
string className = GetUnitOfWork(entityContext);
|
|
context.UnitOfWork = className;
|
|
context.EntityContext = entityContext;
|
|
context.DbName = GetDbName( entityContext );
|
|
context.Namespace = GetNamespace( entityContext.Entities.FirstOrDefault() );
|
|
context.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
context.RenderToFile(GetPath(className,"Datas\\UnitOfWorks\\PgSql"), true);
|
|
}
|
|
|
|
//创建PgSql映射
|
|
public void CreatePgSqlMapping(EntityContext entityContext)
|
|
{
|
|
PgSqlMappingClass result = this.Create<PgSqlMappingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Map", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Datas\\Mappings\\{0}\\PgSql",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建MySql工作单元
|
|
public void CreateMySqlUnitOfWork(EntityContext entityContext)
|
|
{
|
|
MySqlUnitOfWorkClass context = this.Create<MySqlUnitOfWorkClass>();
|
|
this.CopyPropertiesTo(context);
|
|
string className = GetUnitOfWork(entityContext);
|
|
context.UnitOfWork = className;
|
|
context.EntityContext = entityContext;
|
|
context.DbName = GetDbName( entityContext );
|
|
context.Namespace = GetNamespace( entityContext.Entities.FirstOrDefault() );
|
|
context.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
context.RenderToFile(GetPath(className,"Datas\\UnitOfWorks\\MySql"), true);
|
|
}
|
|
|
|
//创建MySql映射
|
|
public void CreateMySqlMapping(EntityContext entityContext)
|
|
{
|
|
MySqlMappingClass result = this.Create<MySqlMappingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Map", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Datas\\Mappings\\{0}\\MySql",GetSchema(entity)) ), true);
|
|
}
|
|
}
|
|
|
|
//创建项目嵌套设置
|
|
public void CreateItemGroup(EntityContext entityContext){
|
|
ItemGroupClass result = this.Create<ItemGroupClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities) {
|
|
var list = entityContext.Entities.Where( t => t.TableSchema == entity.TableSchema ).ToList();
|
|
result.Entities = list;
|
|
result.RenderToFile(GetPath("ItemGroup","Domains\\" + GetSchema(entity),".txt"), true);
|
|
}
|
|
}
|
|
|
|
//创建Ioc配置
|
|
public void CreateIocConfig(EntityContext entityContext)
|
|
{
|
|
IocConfigClass result = this.Create<IocConfigClass>();
|
|
this.CopyPropertiesTo(result);
|
|
string className = "IocConfig";
|
|
result.EntityContext = entityContext;
|
|
result.Namespace = GetNamespace(entityContext.Entities.First());
|
|
result.DbName = GetDbName(entityContext);
|
|
result.RenderToFile(GetPath(className,"Services\\Configs"), true);
|
|
}
|
|
|
|
//创建Dto
|
|
public void CreateDto(EntityContext entityContext)
|
|
{
|
|
DtoClass result = this.Create<DtoClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Dto", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Services\\Dtos\\" + GetSchema(entity) ), true);
|
|
}
|
|
}
|
|
|
|
//创建Dto扩展
|
|
public void CreateDtoExtension(EntityContext entityContext)
|
|
{
|
|
DtoExtensionClass result = this.Create<DtoExtensionClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "Extensions.{0}Dto", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Services\\Dtos\\" + GetSchema(entity) + "\\Extensions"), true);
|
|
}
|
|
}
|
|
|
|
//创建查询参数
|
|
public void CreateQuery(EntityContext entityContext)
|
|
{
|
|
QueryClass result = this.Create<QueryClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Query", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Services\\Queries\\"+ GetSchema(entity)), true);
|
|
}
|
|
}
|
|
|
|
//创建应用服务接口
|
|
public void CreateIService(EntityContext entityContext)
|
|
{
|
|
IServiceClass result = this.Create<IServiceClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "I{0}Service", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Services\\Abstractions\\" + GetSchema(entity) ), true);
|
|
}
|
|
}
|
|
|
|
//创建应用服务实现
|
|
public void CreateService(EntityContext entityContext)
|
|
{
|
|
ServiceClass result = this.Create<ServiceClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Service",entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.UnitOfWork = GetUnitOfWork(entityContext);
|
|
result.IUnitOfWorkNamespace = GetIUnitOfWorkNamespace(entityContext);
|
|
result.RenderToFile(GetPath(className,"Services\\Implements\\" + GetSchema(entity) ), true);
|
|
}
|
|
}
|
|
|
|
//创建Api控制器
|
|
public void CreateApiController(EntityContext entityContext)
|
|
{
|
|
ApiControllerClass result = this.Create<ApiControllerClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Controller",entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.Schema = GetSchema(entity);
|
|
result.RenderToFile(GetPath(className,"Presentation\\Apis\\" + GetSchema(entity) ), true);
|
|
}
|
|
}
|
|
|
|
//创建Index视图
|
|
public void CreateIndexView(EntityContext entityContext)
|
|
{
|
|
IndexViewClass result = this.Create<IndexViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Index";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层Index视图
|
|
public void CreateDialogIndexView(EntityContext entityContext)
|
|
{
|
|
DialogIndexViewClass result = this.Create<DialogIndexViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Index";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}\\Dialog\\", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建Query视图
|
|
public void CreateQueryView(EntityContext entityContext)
|
|
{
|
|
QueryViewClass result = this.Create<QueryViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Index.Query";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建Edit视图
|
|
public void CreateEditView(EntityContext entityContext)
|
|
{
|
|
EditViewClass result = this.Create<EditViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Edit";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层Edit视图
|
|
public void CreateDialogEditView(EntityContext entityContext)
|
|
{
|
|
DialogEditViewClass result = this.Create<DialogEditViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Edit";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}\\Dialog\\", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建Detail视图
|
|
public void CreateDetailView(EntityContext entityContext)
|
|
{
|
|
DetailViewClass result = this.Create<DetailViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Detail";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层Detail视图
|
|
public void CreateDialogDetailView(EntityContext entityContext)
|
|
{
|
|
DialogDetailViewClass result = this.Create<DialogDetailViewClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = "Detail";
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Pages\\{0}\\{1}\\Dialog\\", GetSchema(entity),entity.ClassName ), "cshtml" ), true);
|
|
}
|
|
}
|
|
|
|
//创建Index组件
|
|
public void CreateIndexComponent(EntityContext entityContext)
|
|
{
|
|
IndexComponentClass result = this.Create<IndexComponentClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-list.component",entity.ClassName.ToCamelCase());
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层Index组件
|
|
public void CreateDialogIndexComponent(EntityContext entityContext)
|
|
{
|
|
DialogIndexComponentClass result = this.Create<DialogIndexComponentClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-list.component",entity.ClassName.ToCamelCase());
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}\\dialog\\", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建Edit组件
|
|
public void CreateEditComponent(EntityContext entityContext)
|
|
{
|
|
EditComponentClass result = this.Create<EditComponentClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-edit.component",entity.ClassName.ToCamelCase());
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层Edit组件
|
|
public void CreateDialogEditComponent(EntityContext entityContext)
|
|
{
|
|
DialogEditComponentClass result = this.Create<DialogEditComponentClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-edit.component",entity.ClassName.ToCamelCase());
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}\\dialog\\", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建Detail组件
|
|
public void CreateDetailComponent(EntityContext entityContext)
|
|
{
|
|
DetailComponentClass result = this.Create<DetailComponentClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-detail.component",entity.ClassName.ToCamelCase());
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层Detail组件
|
|
public void CreateDialogDetailComponent(EntityContext entityContext)
|
|
{
|
|
DialogDetailComponentClass result = this.Create<DialogDetailComponentClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-detail.component",entity.ClassName.ToCamelCase());
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}\\dialog\\", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建angular模块
|
|
public void CreateModule(EntityContext entityContext)
|
|
{
|
|
ModuleClass result = this.Create<ModuleClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}.module",GetSchema(entity).ToSingular().ToCamelCase());
|
|
result.EntityContext = entityContext;
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}", GetSchema(entity).ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层angular模块
|
|
public void CreateDialogModule(EntityContext entityContext)
|
|
{
|
|
DialogModuleClass result = this.Create<DialogModuleClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}.module",GetSchema(entity).ToSingular().ToCamelCase());
|
|
result.EntityContext = entityContext;
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\dialog\\", GetSchema(entity).ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建angular路由
|
|
public void CreateRouting(EntityContext entityContext)
|
|
{
|
|
RoutingClass result = this.Create<RoutingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-routing.module",GetSchema(entity).ToSingular().ToCamelCase());
|
|
result.EntityContext = entityContext;
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}", GetSchema(entity).ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建弹出层angular路由
|
|
public void CreateDialogRouting(EntityContext entityContext)
|
|
{
|
|
DialogRoutingClass result = this.Create<DialogRoutingClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format("{0}-routing.module",GetSchema(entity).ToSingular().ToCamelCase());
|
|
result.EntityContext = entityContext;
|
|
result.Entity = entity;
|
|
result.Namespace = GetSchema(entity).ToLower();
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\dialog\\", GetSchema(entity).ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建angular查询参数
|
|
public void CreateQueryModel(EntityContext entityContext)
|
|
{
|
|
QueryModelClass result = this.Create<QueryModelClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}-query", entity.ClassName.ToCamelCase() );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}\\model", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建angular视图模型
|
|
public void CreateViewModel(EntityContext entityContext)
|
|
{
|
|
ViewModelClass result = this.Create<ViewModelClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}-view-model", entity.ClassName.ToCamelCase() );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,string.Format("Presentation\\Typings\\app\\{0}\\{1}\\model", GetSchema(entity).ToCamelCase(),entity.ClassName.ToCamelCase() ), "ts" ), true);
|
|
}
|
|
}
|
|
|
|
//创建实体测试
|
|
public void CreateEntityTest(EntityContext entityContext)
|
|
{
|
|
EntityTestClass result = this.Create<EntityTestClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Test", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Tests\\UnitTests\\Models\\" + GetSchema(entity) ), true);
|
|
}
|
|
}
|
|
|
|
//创建实体测试数据
|
|
public void CreateEntityTestData(EntityContext entityContext)
|
|
{
|
|
EntityTestDataClass result = this.Create<EntityTestDataClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}Test.Data", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Tests\\UnitTests\\Models\\" + GetSchema(entity)), true);
|
|
}
|
|
}
|
|
|
|
//创建Dto测试
|
|
public void CreateDtoTest(EntityContext entityContext)
|
|
{
|
|
DtoTestClass result = this.Create<DtoTestClass>();
|
|
this.CopyPropertiesTo(result);
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}DtoTest", entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Tests\\IntegrationTests\\Dtos\\" + GetSchema(entity)), true);
|
|
}
|
|
}
|
|
|
|
//创建应用服务测试
|
|
public void CreateServiceTest(EntityContext entityContext)
|
|
{
|
|
ServiceTestClass result = this.Create<ServiceTestClass>();
|
|
this.CopyPropertiesTo(result);
|
|
|
|
foreach(Entity entity in entityContext.Entities)
|
|
{
|
|
string className = string.Format( "{0}ServiceTest",entity.ClassName );
|
|
result.Entity = entity;
|
|
result.Namespace = GetNamespace(entity);
|
|
result.RenderToFile(GetPath(className,"Tests\\IntegrationTests\\Services\\" + GetSchema(entity)), true);
|
|
}
|
|
}
|
|
|
|
private void OnSchemaItemProcessed(object sender, SchemaItemProcessedEventArgs e)
|
|
{
|
|
}
|
|
|
|
private void OnSourceDatabaseChanged(object sender, EventArgs e)
|
|
{
|
|
}
|
|
|
|
private void OnContextNamespaceChanged(object sender, EventArgs e)
|
|
{
|
|
}
|
|
</script> |