diff --git a/.gitignore b/.gitignore index cf45d66..7628db6 100644 --- a/.gitignore +++ b/.gitignore @@ -221,7 +221,7 @@ ClientBin/ *.publishsettings orleans.codegen.cs -# Including strong name files can present a security risk +# Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk @@ -317,7 +317,7 @@ __pycache__/ # OpenCover UI analysis results OpenCover/ -# Azure Stream Analytics local run output +# Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log @@ -326,7 +326,8 @@ ASALocalRun/ # NVidia Nsight GPU debugger configuration file *.nvuser -# MFractors (Xamarin productivity tool) working folder +# MFractors (Xamarin productivity tool) working folder .mfractor/ /.vscode/tasks.json /.vscode/launch.json +.DS_Store diff --git a/README-EN.md b/README-EN.md index 99ceae7..2968f97 100644 --- a/README-EN.md +++ b/README-EN.md @@ -58,8 +58,8 @@ Output: Type: File Path: 'E:\SmartSql-Starter' Parameters: - SmartSqlVersion: '4.0.46' - SmartSqlSchemaVersion: '4.0.42' + SmartSqlVersion: '4.1.64' + SmartSqlSchemaVersion: '4.1.30' BuildDir: 'E:\SmartSql-Starter\build' DockerImage: 'smartsql.starter' @@ -127,7 +127,7 @@ Build: {Key: "API/AppSettings.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings',Extension: '.json'}}, {Key: "API/AppSettings-Development.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings.Development',Extension: '.json'}}, {Key: "API/Program.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Program',Extension: '.cs'}}, - {Key: "API/Startup.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Startup',Extension: '.cs'}}, + # {Key: "API/Startup.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Startup',Extension: '.cs'}}, {Key: "API/APIException.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Exceptions',Name: 'APIException',Extension: '.cs'}}, {Key: "API/GlobalExceptionFilter.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Filters',Name: 'GlobalExceptionFilter',Extension: '.cs'}}, {Key: "API/GlobalValidateModelFilter.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Filters',Name: 'GlobalValidateModelFilter',Extension: '.cs'}}, @@ -197,6 +197,34 @@ Build: IgnoreNoPKTable: true IgnoreView: true + AddEntityProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Entity/{{Project.Module}}.Entity.csproj + + AddRepositryProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Repository/{{Project.Module}}.Repository.csproj + + AddServiceProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Service/{{Project.Module}}.Service.csproj + + AddApiProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.API/{{Project.Module}}.API.csproj + # Please install dotnet-format first! # dotnet tool install -g dotnet-format CodeFormat: @@ -261,7 +289,7 @@ Build: | Author | Author | | DataSource | Data Source | | Language | Language: CSharp/Java/.... | -| TemplateEngine | Template Engine: Currently Built: Razor/Handlebars | +| TemplateEngine | Template Engine: Currently Built: Razor | | Output | Output | | Build | Task Build | @@ -358,4 +386,4 @@ Build: ,{Column: Deleted,Mapping: deleted}] PreCommand: PostCommand: -``` \ No newline at end of file +``` diff --git a/README.md b/README.md index 01b8440..8fabaf4 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,8 @@ Output: Type: File Path: 'E:\SmartSql-Starter' Parameters: - SmartSqlVersion: '4.0.46' - SmartSqlSchemaVersion: '4.0.42' + SmartSqlVersion: '4.1.64' + SmartSqlSchemaVersion: '4.1.30' BuildDir: 'E:\SmartSql-Starter\build' DockerImage: 'smartsql.starter' @@ -127,7 +127,7 @@ Build: {Key: "API/AppSettings.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings',Extension: '.json'}}, {Key: "API/AppSettings-Development.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings.Development',Extension: '.json'}}, {Key: "API/Program.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Program',Extension: '.cs'}}, - {Key: "API/Startup.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Startup',Extension: '.cs'}}, + # {Key: "API/Startup.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Startup',Extension: '.cs'}}, {Key: "API/APIException.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Exceptions',Name: 'APIException',Extension: '.cs'}}, {Key: "API/GlobalExceptionFilter.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Filters',Name: 'GlobalExceptionFilter',Extension: '.cs'}}, {Key: "API/GlobalValidateModelFilter.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Filters',Name: 'GlobalValidateModelFilter',Extension: '.cs'}}, @@ -197,6 +197,34 @@ Build: IgnoreNoPKTable: true IgnoreView: true + AddEntityProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Entity/{{Project.Module}}.Entity.csproj + + AddRepositryProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Repository/{{Project.Module}}.Repository.csproj + + AddServiceProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Service/{{Project.Module}}.Service.csproj + + AddApiProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.API/{{Project.Module}}.API.csproj + # Please install dotnet-format first! # dotnet tool install -g dotnet-format CodeFormat: @@ -261,7 +289,7 @@ Build: | Author | 作者 | | DataSource | 数据源 | | Language | 语言:CSharp/Java/.... | -| TemplateEngine | 模板引擎:目前内置:Razor/Handlebars | +| TemplateEngine | 模板引擎:目前内置:Razor | | Output | 输出 | | Build | 任务构建s | @@ -368,4 +396,4 @@ Build: ,{Column: Deleted,Mapping: deleted}] PreCommand: PostCommand: -``` \ No newline at end of file +``` diff --git a/build/version.props b/build/version.props index 8e0c968..8887306 100644 --- a/build/version.props +++ b/build/version.props @@ -1,8 +1,8 @@ - 2 - 3 - 6 + 3 + 0 + 1 $(VersionMajor).$(VersionMinor).$(VersionPatch) diff --git a/doc/SmartCode-TypeScript.yml b/doc/SmartCode-TypeScript.yml index 3a3e3d8..e41d3cf 100644 --- a/doc/SmartCode-TypeScript.yml +++ b/doc/SmartCode-TypeScript.yml @@ -59,6 +59,7 @@ Build: Type: Table Module: Data TemplateEngine: + Name: RazorCore Path: Model.cshtml Output: Path: '{{Items.CurrentTable.Name}}/services' diff --git a/doc/SmartCode.ETL-EN.md b/doc/SmartCode.ETL-EN.md index 587751a..ce51be1 100644 --- a/doc/SmartCode.ETL-EN.md +++ b/doc/SmartCode.ETL-EN.md @@ -84,11 +84,7 @@ I believe that many students who have already landed the microservices architect }, { "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.HandlebarsTemplateEngine,SmartCode.TemplateEngine" - }, - { - "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.OfficialRazorTemplateEngine,SmartCode.TemplateEngine" + "ImplType": "SmartCode.TemplateEngine.Impl.RazorCoreTemplateEngine,SmartCode.TemplateEngine" }, { "Type": "SmartCode.Generator.IDbTypeConverter,SmartCode.Generator", @@ -274,4 +270,4 @@ The following is the data loading performance, the amount of bulk insert data is At present, SmartCode.ETL has been put into our production environment (2018-11-01 went online, as of 2018-11-16 16:50 executed 65520 synchronization tasks, no error log was thrown ) -> PS: Although SmartCode.ETL only took two days to complete the expansion on the weekend, it can already meet at least 90% of our application scenarios. This is enough to see how amazing the SmartCode expansion capabilities are. Of course, other capabilities of SmartCode have to be followed up and explored! ! ! \ No newline at end of file +> PS: Although SmartCode.ETL only took two days to complete the expansion on the weekend, it can already meet at least 90% of our application scenarios. This is enough to see how amazing the SmartCode expansion capabilities are. Of course, other capabilities of SmartCode have to be followed up and explored! ! ! diff --git a/doc/SmartCode.ETL.md b/doc/SmartCode.ETL.md index 22475c5..9d2a240 100644 --- a/doc/SmartCode.ETL.md +++ b/doc/SmartCode.ETL.md @@ -84,11 +84,7 @@ }, { "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.HandlebarsTemplateEngine,SmartCode.TemplateEngine" - }, - { - "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.OfficialRazorTemplateEngine,SmartCode.TemplateEngine" + "ImplType": "SmartCode.TemplateEngine.Impl.RazorCoreTemplateEngine,SmartCode.TemplateEngine" }, { "Type": "SmartCode.Generator.IDbTypeConverter,SmartCode.Generator", @@ -274,4 +270,4 @@ LastMaxModifyTime 即上一次抽取的数据最大ModifyTime值(第一次抽取 目前 SmartCode.ETL 已经落地到我们的生产环境了(11-01上线截至 2018-11-16 16:50 执行了 65520 次同步任务,暂无error日志抛出) -> PS: 虽然 SmartCode.ETL 只花了周末俩天时间完成扩展,但已经可以满足我们至少90%的应用场景。这足以见得 SmartCode 扩展能力是多么令人意外了。当然SmartCode的其他能力还得后续等各位一起发掘!!! \ No newline at end of file +> PS: 虽然 SmartCode.ETL 只花了周末俩天时间完成扩展,但已经可以满足我们至少90%的应用场景。这足以见得 SmartCode 扩展能力是多么令人意外了。当然SmartCode的其他能力还得后续等各位一起发掘!!! diff --git a/doc/SmartCode.yml b/doc/SmartCode.yml index 6cd9397..cc2c2af 100644 --- a/doc/SmartCode.yml +++ b/doc/SmartCode.yml @@ -14,7 +14,7 @@ Output: Type: File Path: 'D:\SmartSql-Starter' Parameters: - SmartSqlVersion: '4.1.42' + SmartSqlVersion: '4.1.64' SmartSqlSchemaVersion: '4.1.30' BuildDir: 'D:\SmartSql-Starter\build' DockerImage: 'smartsql.starter' @@ -87,7 +87,7 @@ Build: {Key: "API/AppSettings.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings',Extension: '.json'}}, {Key: "API/AppSettings-Development.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings.Development',Extension: '.json'}}, {Key: "API/Program.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Program',Extension: '.cs'}}, - {Key: "API/Startup.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Startup',Extension: '.cs'}}, + # {Key: "API/Startup.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'Startup',Extension: '.cs'}}, {Key: "API/APIException.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Exceptions',Name: 'APIException',Extension: '.cs'}}, {Key: "API/GlobalExceptionFilter.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Filters',Name: 'GlobalExceptionFilter',Extension: '.cs'}}, {Key: "API/GlobalValidateModelFilter.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Filters',Name: 'GlobalValidateModelFilter',Extension: '.cs'}}, @@ -151,6 +151,34 @@ Build: Name: '{{Items.CurrentTable.ConvertedName}}' Extension: .xml + AddEntityProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Entity/{{Project.Module}}.Entity.csproj + + AddRepositryProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Repository/{{Project.Module}}.Repository.csproj + + AddServiceProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.Service/{{Project.Module}}.Service.csproj + + AddApiProj: + Type: Process + Parameters: + FileName: powershell + WorkingDirectory: '{{Project.Output.Path}}' + Args: dotnet sln add -s API src/{{Project.Module}}.API/{{Project.Module}}.API.csproj + # Please install dotnet-format first! # dotnet tool install -g dotnet-format CodeFormat: diff --git a/doc/common-problem.md b/doc/common-problem.md index 3f1dd88..b4974c8 100644 --- a/doc/common-problem.md +++ b/doc/common-problem.md @@ -67,11 +67,7 @@ SmartCode 插件机制拥有非常灵活的扩展能力,SmartCode 中一切都 }, { "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.HandlebarsTemplateEngine,SmartCode.TemplateEngine" - }, - { - "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.OfficialRazorTemplateEngine,SmartCode.TemplateEngine" + "ImplType": "SmartCode.TemplateEngine.Impl.RazorCoreTemplateEngine,SmartCode.TemplateEngine" }, { "Type": "SmartCode.Generator.IDbTypeConverter,SmartCode.Generator", @@ -111,9 +107,9 @@ SmartCode 插件机制拥有非常灵活的扩展能力,SmartCode 中一切都 ## 如何自定义模板 -目前SmartCode支持俩种模板引擎 **Razor** & **Handlebars** 。 +目前SmartCode支持模板引擎 **Razor** 。 Razor 模板引擎使用的是官方版本,这一点上.NETer同学可以很轻松的自定义SmartCode模板,需要注意的是Razor模板的Model为BuildContext,具体方法可以参考源代码中的模板。编写完成之后放到RazorTemplates,构建时指定好即可。 ## 代码生成器支持多少种数据库 -SmartCode获取数据源结构使用的是[SmartSql](https://github.com/Ahoo-Wang/SmartSql),所以SmartCode支持所有ADO.NET驱动相关的数据库:MySql/PostgreSql/SqlServer/Oracle/SQLite 等 \ No newline at end of file +SmartCode获取数据源结构使用的是[SmartSql](https://github.com/Ahoo-Wang/SmartSql),所以SmartCode支持所有ADO.NET驱动相关的数据库:MySql/PostgreSql/SqlServer/Oracle/SQLite 等 diff --git a/src/SmartCode.App/SmartCode.App.csproj b/src/SmartCode.App/SmartCode.App.csproj index 20c43c8..b26460d 100644 --- a/src/SmartCode.App/SmartCode.App.csproj +++ b/src/SmartCode.App/SmartCode.App.csproj @@ -1,11 +1,11 @@  - netstandard2.0 + net6.0 - - + + diff --git a/src/SmartCode.App/SmartCodeApp.cs b/src/SmartCode.App/SmartCodeApp.cs index 46c037a..fa9d254 100644 --- a/src/SmartCode.App/SmartCodeApp.cs +++ b/src/SmartCode.App/SmartCodeApp.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -7,6 +8,7 @@ using System.IO; using SmartCode.Configuration.ConfigBuilders; using System.Reflection; +using System.Text; using HandlebarsDotNet; using SmartCode.ETL; using SmartCode.Generator; @@ -136,6 +138,25 @@ public string Encode(string value) { return value; } + + public void Encode(StringBuilder text, TextWriter target) + { + target.Write(text.ToString()); + } + + public void Encode(string text, TextWriter target) + { + target.Write(text); + } + + public void Encode(T text, TextWriter target) where T : IEnumerator + { + while (text.MoveNext()) + { + target.Write(text.Current); + } + } + } } -} \ No newline at end of file +} diff --git a/src/SmartCode.CLI/SmartCode.CLI.csproj b/src/SmartCode.CLI/SmartCode.CLI.csproj index 5727544..dce4ae9 100644 --- a/src/SmartCode.CLI/SmartCode.CLI.csproj +++ b/src/SmartCode.CLI/SmartCode.CLI.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.2 + net6.0 true true SmartCode @@ -14,11 +14,11 @@ - - - - - + + + + + diff --git a/src/SmartCode.CLI/appsettings.json b/src/SmartCode.CLI/appsettings.json index 9fe42b6..f3f491a 100644 --- a/src/SmartCode.CLI/appsettings.json +++ b/src/SmartCode.CLI/appsettings.json @@ -51,11 +51,7 @@ }, { "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.HandlebarsTemplateEngine,SmartCode.TemplateEngine" - }, - { - "Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", - "ImplType": "SmartCode.TemplateEngine.Impl.OfficialRazorTemplateEngine,SmartCode.TemplateEngine" + "ImplType": "SmartCode.TemplateEngine.Impl.RazorCoreTemplateEngine,SmartCode.TemplateEngine" }, { "Type": "SmartCode.Generator.IDbTypeConverter,SmartCode.Generator", @@ -100,7 +96,7 @@ "Type": "SmartCode.ETL.IETLTaskRepository,SmartCode.ETL", "ImplType": "SmartCode.ETL.SQLite.SQLiteETLTaskRepository,SmartCode.ETL.SQLite", "Parameters": { - //"ConnectionString": "Data Source=YOUR_DB_DIR\smartcode-etl.db;Version=3;" + // "ConnectionString": "Data Source=YOUR_DB_DIR\smartcode-etl.db;Version=3;" } } ] diff --git a/src/SmartCode.Db/SmartCode.Db.csproj b/src/SmartCode.Db/SmartCode.Db.csproj index 6c40434..d25e983 100644 --- a/src/SmartCode.Db/SmartCode.Db.csproj +++ b/src/SmartCode.Db/SmartCode.Db.csproj @@ -1,18 +1,18 @@  - netstandard2.0 + net6.0 - - - - - - - - + + + + + + + + diff --git a/src/SmartCode.ETL.LoadToES/LoadToESBuildTask.cs b/src/SmartCode.ETL.LoadToES/LoadToESBuildTask.cs index 8133ba4..05929d4 100644 --- a/src/SmartCode.ETL.LoadToES/LoadToESBuildTask.cs +++ b/src/SmartCode.ETL.LoadToES/LoadToESBuildTask.cs @@ -80,7 +80,7 @@ public async Task Build(BuildContext context) if (colMapping.TryGetValue(itemKey, out string mapping)) { itemKey = mapping; - } + } } newItem.Add(itemKey,item.Value); } @@ -90,16 +90,15 @@ public async Task Build(BuildContext context) #endregion #region BatchInsert var esClient = GetElasticClient(esOptions); - var indexExResp = await esClient.IndexExistsAsync(esOptions.Index); + var indexExResp = await esClient.Indices.ExistsAsync(esOptions.Index); if (!indexExResp.Exists) { - var createIndexResp = await esClient.CreateIndexAsync(esOptions.Index); + var createIndexResp = await esClient.Indices.CreateAsync(esOptions.Index); } - var esSyncResp = await esClient.BulkAsync((bulkRequest) => - { - var bulkReqDesc = bulkRequest - .Index(esOptions.Index) - .Type(esOptions.TypeName); + var esSyncResp = await esClient.BulkAsync((bulkRequest) => { + var bulkReqDesc = bulkRequest + .Index(esOptions.Index); + // .Type(esOptions.TypeName); if (context.Build.Parameters.Value(ID_MAPPING, out string es_id)) { return bulkReqDesc.IndexMany(dataSource.TransformData, (bulkIdxDesc, item) => @@ -150,7 +149,7 @@ private IElasticClient GetElasticClient(ESOptions esOptions) Uri node = new Uri(esOptions.Host); ConnectionSettings settings = new ConnectionSettings(node); settings.DefaultIndex(esOptions.Index); - settings.DefaultTypeName(esOptions.TypeName); + // settings.DefaultTypeName(esOptions.TypeName); #region Auth if (!String.IsNullOrEmpty(esOptions.UserName)) { diff --git a/src/SmartCode.ETL.LoadToES/SmartCode.ETL.LoadToES.csproj b/src/SmartCode.ETL.LoadToES/SmartCode.ETL.LoadToES.csproj index db96e9a..fa8222a 100644 --- a/src/SmartCode.ETL.LoadToES/SmartCode.ETL.LoadToES.csproj +++ b/src/SmartCode.ETL.LoadToES/SmartCode.ETL.LoadToES.csproj @@ -1,11 +1,11 @@  - netstandard2.0 + net6.0 - + diff --git a/src/SmartCode.ETL.PostgreSql/SmartCode.ETL.PostgreSql.csproj b/src/SmartCode.ETL.PostgreSql/SmartCode.ETL.PostgreSql.csproj index 2e746e5..140966c 100644 --- a/src/SmartCode.ETL.PostgreSql/SmartCode.ETL.PostgreSql.csproj +++ b/src/SmartCode.ETL.PostgreSql/SmartCode.ETL.PostgreSql.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + net6.0 diff --git a/src/SmartCode.ETL.SQLite/SmartCode.ETL.SQLite.csproj b/src/SmartCode.ETL.SQLite/SmartCode.ETL.SQLite.csproj index 43d8d41..8a37050 100644 --- a/src/SmartCode.ETL.SQLite/SmartCode.ETL.SQLite.csproj +++ b/src/SmartCode.ETL.SQLite/SmartCode.ETL.SQLite.csproj @@ -1,11 +1,11 @@  - netstandard2.0 + net6.0 - + diff --git a/src/SmartCode.ETL/SmartCode.ETL.csproj b/src/SmartCode.ETL/SmartCode.ETL.csproj index 8da3559..7dd483f 100644 --- a/src/SmartCode.ETL/SmartCode.ETL.csproj +++ b/src/SmartCode.ETL/SmartCode.ETL.csproj @@ -1,13 +1,13 @@  - netstandard2.0 + net6.0 - - - + + + diff --git a/src/SmartCode.ETL/TransformEngine/RazorTransformEngine.cs b/src/SmartCode.ETL/TransformEngine/RazorTransformEngine.cs index 30cad9c..2711379 100644 --- a/src/SmartCode.ETL/TransformEngine/RazorTransformEngine.cs +++ b/src/SmartCode.ETL/TransformEngine/RazorTransformEngine.cs @@ -1,17 +1,8 @@ -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Hosting.Internal; -using Microsoft.AspNetCore.Mvc.Razor; -using Microsoft.AspNetCore.Razor.TagHelpers; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.FileProviders; -using Microsoft.Extensions.ObjectPool; +using Microsoft.Extensions.DependencyInjection; using SmartCode.TemplateEngine.Impl; using SmartCode.Utilities; using System; using System.Collections.Generic; -using System.Diagnostics; -using System.Reflection; -using System.Text.Encodings.Web; using System.Threading.Tasks; namespace SmartCode.ETL.TransformEngine @@ -23,18 +14,14 @@ public async Task Transform(BuildContext context) { if (context.Build.Parameters.Value(SCRIPT, out string script) && !String.IsNullOrEmpty(script)) { - using (var serviceScope = _scopeFactory.CreateScope()) - { - var helper = serviceScope.ServiceProvider.GetRequiredService(); - await helper.RenderViewToStringAsync(script, context); - } + await RazorCoreHelper.CompileAndRunAsync(script, context); } } public bool Initialized { get; private set; } public string Name { get; private set; } = "Razor"; private string _root = AppPath.Relative("TransformScripts"); - private IServiceScopeFactory _scopeFactory; + public void Initialize(IDictionary parameters) { Initialized = true; @@ -49,46 +36,15 @@ public void Initialize(IDictionary parameters) _root = root; } } - InitializeServices(); } public Task Render(BuildContext context) { - using (var serviceScope = _scopeFactory.CreateScope()) - { - var helper = serviceScope.ServiceProvider.GetRequiredService(); - return helper.RenderViewToStringAsync(context.Build.TemplateEngine.FullPath, context); - } + return RazorCoreHelper.CompileAndRunAsync( + context.Build.TemplateEngine.FullPath, + context + ); } - private void InitializeServices() - { - var services = ConfigureDefaultServices(); - var serviceProvider = services.BuildServiceProvider(); - _scopeFactory = serviceProvider.GetRequiredService(); - } - private IServiceCollection ConfigureDefaultServices() - { - var services = new ServiceCollection(); - IFileProvider fileProvider = new PhysicalFileProvider(_root); - services.AddSingleton(new HostingEnvironment - { - ApplicationName = Assembly.GetEntryAssembly().GetName().Name, - WebRootFileProvider = fileProvider, - }); - services.AddSingleton(NullHtmlEncoder.Default); - services.Configure(options => - { - options.FileProviders.Clear(); - options.FileProviders.Add(fileProvider); - }); - var diagnosticSource = new DiagnosticListener("Microsoft.AspNetCore"); - services.AddSingleton(); - services.AddSingleton(diagnosticSource); - services.AddLogging(); - services.AddMvc(); - services.AddTransient(); - return services; - } } } diff --git a/src/SmartCode.ETL/TransformScripts/Load2PostgreSql.cshtml b/src/SmartCode.ETL/TransformScripts/Load2PostgreSql.cshtml index 41ecb7d..5209687 100644 --- a/src/SmartCode.ETL/TransformScripts/Load2PostgreSql.cshtml +++ b/src/SmartCode.ETL/TransformScripts/Load2PostgreSql.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.ETL; -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var dataSource = Model.GetExtractData(); } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIController.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIController.cshtml index 8732f1a..bd71453 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIController.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIController.cshtml @@ -1,8 +1,7 @@ @using SmartCode @using SmartCode.Generator.Extensions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; var table = Model.GetCurrentTable(); var pkType = table.PKColumn.LanguageType; @@ -14,6 +13,7 @@ var repositoryName = $"{table.ConvertedName}Repository"; var repositoryCamelName = NamingUtil.CamelCase(repositoryName); } +@Include("../Copyright.cshtml", Model) using System; using System.Collections; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIException.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIException.cshtml index f807c0c..92f0b83 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIException.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/APIException.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.Collections.Generic; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings-Development.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings-Development.cshtml index 0e7a6ec..059dbb4 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings-Development.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings-Development.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings.cshtml index b3b0d0b..8939b42 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/AppSettings.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalExceptionFilter.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalExceptionFilter.cshtml index 3bf2674..334dce2 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalExceptionFilter.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalExceptionFilter.cshtml @@ -1,58 +1,45 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.Logging; +using System.Net; using @(project.Module).API.Exceptions; using @(project.Module).API.Messages; -using System.Net; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; namespace @(project.Module).API.Filters { public class GlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; private readonly ILogger@("") logger; - public GlobalExceptionFilter(IHostingEnvironment env, ILogger@("") logger) + public GlobalExceptionFilter(ILogger@("") logger) { - this.env = env; - this.logger = logger; + this.logger = logger; } public void OnException(ExceptionContext context) { - context.ExceptionHandled = true; - var exception = context.Exception; - logger.LogError( - new EventId(exception.HResult), - exception, - exception.Message); - string errorCode = "0001"; - if (exception is APIException) { errorCode = (exception as APIException).ErrorCode; } - var errorResp = new ResponseMessage - { - Message = exception.Message, - ErrorCode = errorCode, - IsSuccess = false - }; - var result = new JsonResult(errorResp) - { - StatusCode = (int)HttpStatusCode.OK - }; - context.Result = result; - - } + context.ExceptionHandled = true; + var exception = context.Exception; + logger.LogError(new EventId(exception.HResult), exception, exception.Message); + string errorCode = "0001"; + if (exception is APIException apiException) { errorCode = apiException.ErrorCode; } + var errorResp = new ResponseMessage + { + Message = exception.Message, + ErrorCode = errorCode, + IsSuccess = false + }; + var result = new JsonResult(errorResp) + { + StatusCode = (int)HttpStatusCode.OK + }; + context.Result = result; } - } - - - - - + } +} \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalValidateModelFilter.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalValidateModelFilter.cshtml index 139cd69..230d808 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalValidateModelFilter.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/GlobalValidateModelFilter.cshtml @@ -1,59 +1,54 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) -using Microsoft.AspNetCore.Hosting; +using System.Text; +using @(project.Module).API.Messages; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using @(project.Module).API.Messages; -using System.Linq; -using System.Text; namespace @(project.Module).API.Filters { public class GlobalValidateModelFilter : IActionFilter { - private readonly IHostingEnvironment _env; private readonly ILogger@("") _logger; - public GlobalValidateModelFilter(IHostingEnvironment env, ILogger@("") logger) + public GlobalValidateModelFilter(ILogger@("") logger) { - _env = env; - _logger = logger; + _logger = logger; } public void OnActionExecuted(ActionExecutedContext context) { } - + public void OnActionExecuting(ActionExecutingContext context) { - if (!context.ModelState.IsValid) - { - _logger.LogDebug("ModelState not valid:{0}", JsonConvert.SerializeObject(context.ModelState)); - StringBuilder errStr = new StringBuilder(); - - foreach (var error in context.ModelState.Values) - { - string errorMsg = error.Errors?.FirstOrDefault()?.ErrorMessage; - errStr.AppendFormat("{0} |", errorMsg); - } - - var resp = new ResponseMessage - { - ErrorCode = "0006", - Message = errStr.ToString().TrimEnd('|'), - IsSuccess = false - }; - - var result = new JsonResult(resp); - context.Result = result; - } - } - } + if (!context.ModelState.IsValid) + { + _logger.LogDebug("ModelState not valid:{0}", JsonConvert.SerializeObject(context.ModelState)); + StringBuilder errStr = new StringBuilder(); + + foreach (var error in context.ModelState.Values) + { + string? errorMsg = error.Errors.FirstOrDefault()?.ErrorMessage; + errStr.AppendFormat("{0} |", errorMsg); + } + + var resp = new ResponseMessage + { + ErrorCode = "0006", + Message = errStr.ToString().TrimEnd('|'), + IsSuccess = false + }; + + var result = new JsonResult(resp); + context.Result = result; + } } + } +} diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/LaunchSettings.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/LaunchSettings.cshtml index 68aa728..730d45e 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/LaunchSettings.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/LaunchSettings.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/Program.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/Program.cshtml index 73ca2ff..427abaa 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/Program.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/Program.cshtml @@ -1,37 +1,71 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; - -namespace @(project.Module).API -{ - public class Program - { - public static void Main(string[] args) - { - BuildWebHost(args).Run(); - } - - public static IWebHost BuildWebHost(string[] args) - { - var config = new ConfigurationBuilder() - .AddCommandLine(args) - .Build(); - return WebHost.CreateDefaultBuilder(args) - .UseConfiguration(config) - .UseStartup@("")().Build(); - } - } - } +using System.Reflection; +using @(project.Module).API.Filters; +using Microsoft.OpenApi.Models; + +const string SERVICE_NAME = "@(project.Module).API"; +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(options => +{ +options.Filters.Add@("")(); +options.Filters.Add@("")(); +}); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); + +builder.Services.AddSmartSql() +.AddRepositoryFromAssembly(options => +{ +options.AssemblyString = "@(project.Module).Repository"; +}); + +var assembly = Assembly.Load("@(project.Module).Service"); +var allTypes = assembly.GetTypes(); +foreach (var type in allTypes.Where(t => + !new[] { "EmbeddedAttribute", "NullableAttribute", "NullableContextAttribute" }.Contains(t.Name))) +{ +builder.Services.AddSingleton(type); +} + +builder.Services.AddSwaggerGen(c => +{ +c.SwaggerDoc("v1", new OpenApiInfo +{ +Title = SERVICE_NAME, +Version = "v1", +Description = "https://github.com/Smart-Kit/SmartCode" +}); +c.CustomSchemaIds(type => type.FullName); +var filePath = Path.Combine(AppContext.BaseDirectory, $"{SERVICE_NAME}.xml"); +if (File.Exists(filePath)) +{ +c.IncludeXmlComments(filePath); +} +}); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ +app.UseSwagger(); +app.UseSwaggerUI(c => +{ +c.SwaggerEndpoint("/swagger/v1/swagger.json", SERVICE_NAME); +}); +} + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageRequest.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageRequest.cshtml index cb1ccea..052bb65 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageRequest.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageRequest.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.Collections.Generic; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageResponse.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageResponse.cshtml index 6870de4..16c47e5 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageResponse.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryByPageResponse.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.Collections.Generic; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryRequest.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryRequest.cshtml index a399833..7761659 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryRequest.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryRequest.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.Collections.Generic; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryResponse.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryResponse.cshtml index 3d94528..e0ab2f1 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryResponse.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/QueryResponse.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.Collections.Generic; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/ResponseMessage.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/ResponseMessage.cshtml index 243ea1f..3a6658a 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/ResponseMessage.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/ResponseMessage.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.Collections.Generic; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/API/Startup.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/API/Startup.cshtml index 5ed503a..12ad7bb 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/API/Startup.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/API/Startup.cshtml @@ -1,9 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_CSharpLayout.cshtml"; var project = Model.Project; } +@Include("../Copyright.cshtml", Model) using System; using System.IO; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Copyright.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Copyright.cshtml index 3e2f8ac..34bd426 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Copyright.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Copyright.cshtml @@ -1,5 +1,6 @@ -@using SmartCode -@model BuildContext +@using System +@using SmartCode +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Entity.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Entity.cshtml index 30fe4d9..2990650 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Entity.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Entity.cshtml @@ -1,8 +1,8 @@ -@using SmartCode +@using System +@using SmartCode @using SmartCode.Generator.Extensions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_CSharpLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -28,6 +28,7 @@ public string ConvertLangType(SmartCode.Generator.Entity.Column column) } } +@Include("Copyright.cshtml", Model) using System; namespace @(project.Module).@buildTask.Module @@ -40,9 +41,9 @@ namespace @(project.Module).@buildTask.Module { @column.GetCSharpSummary() - @Html.NewLine() + @NewLine() public virtual @(ConvertLangType(column)) @column.ConvertedName { get; set; } - @Html.NewLine() + @NewLine() } } } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-API.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-API.cshtml index 8a8f3c8..b2a74a4 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-API.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-API.cshtml @@ -1,8 +1,9 @@ -@using SmartCode -@model BuildContext +@using System.Collections.Generic +@using SmartCode +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; - var smartsqlVersion = "4.0.42"; + var smartsqlVersion = "4.1.64"; if (project.Parameters.Value("SmartSqlVersion", out string version)) { smartsqlVersion = version; @@ -10,17 +11,16 @@ } - netcoreapp2.2 + net6.0 + enable + enable - + - - - diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Entity.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Entity.cshtml index 85d21f0..c02991b 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Entity.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Entity.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; @@ -7,6 +7,8 @@ - netstandard2.0 + net6.0 + enable + enable diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Repository.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Repository.cshtml index 8835c59..31bbb52 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Repository.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Repository.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Collections.Generic +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -8,12 +9,12 @@ var dbProviderAssNames = dbFactory.GetType().Assembly.FullName.Split(','); var dbProviderName = dbProviderAssNames[0]; var dbProviderVersion = dbProviderAssNames[1].Split('=')[1]; - var smartSqlVersion = "4.0.42"; + var smartSqlVersion = "4.1.64"; if (project.Parameters.Value("SmartSqlVersion", out string version)) { smartSqlVersion = version; } - var smartSqlSchemaVersion = "4.0.42"; + var smartSqlSchemaVersion = "4.1.30"; if (project.Parameters.Value("SmartSqlSchemaVersion", out string schemaVersion)) { smartSqlSchemaVersion = schemaVersion; @@ -22,24 +23,23 @@ - netstandard2.0 + net6.0 + enable + enable - @if (dbSource.DbRepository.DbProvider != DbProvider.SqlServer) - { - - } + @if (dbSource.DbRepository.DbProvider == DbProvider.PostgreSql) { - + } else { - + } - - - + + + diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Service.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Service.cshtml index c58e69d..aaf22c3 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Service.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Proj-Service.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } @@ -7,7 +7,9 @@ - netstandard2.0 + net6.0 + enable + enable diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Repository.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Repository.cshtml index 05a5d26..1df8ff6 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Repository.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Repository.cshtml @@ -1,9 +1,8 @@ @using SmartCode @using SmartCode.Db; @using SmartCode.Generator.Extensions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_CSharpLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -19,6 +18,7 @@ var pkNameEqId = pkCol.ConvertedName == "Id"; var genericParameterKey = $"{table.ConvertedName},{primaryKeyType}"; } +@Include("Copyright.cshtml", Model) using System; using System.Collections.Generic; @@ -38,46 +38,46 @@ public interface I@(table.ConvertedName)Repository : IRepository<@genericParamet @if (dbSource.DbRepository.DbProvider == DbProvider.PostgreSql && autoIncrement) { [Statement(Execute = ExecuteBehavior.QuerySingle)] - @Html.NewLine() - @Html.PadLeft(8) new @primaryKeyType Insert(@table.ConvertedName entity); - @Html.NewLine() + @NewLine() + @PadLeft(8) new @primaryKeyType Insert(@table.ConvertedName entity); + @NewLine() [Statement(Execute = ExecuteBehavior.QuerySingle)] - @Html.NewLine() - @Html.PadLeft(8) new Task<@primaryKeyType> InsertAsync(@table.ConvertedName entity); - @Html.NewLine() + @NewLine() + @PadLeft(8) new Task<@primaryKeyType> InsertAsync(@table.ConvertedName entity); + @NewLine() } else if (autoIncrement && primaryKeyType != "int") { - @Html.PadLeft(8) new @primaryKeyType Insert(@table.ConvertedName entity); - @Html.NewLine() + @PadLeft(8) new @primaryKeyType Insert(@table.ConvertedName entity); + @NewLine() - @Html.PadLeft(8) new Task<@primaryKeyType> InsertAsync(@table.ConvertedName entity); - @Html.NewLine() + @PadLeft(8) new Task<@primaryKeyType> InsertAsync(@table.ConvertedName entity); + @NewLine() } @if (!pkNameEqId) { [Statement(Id = "GetEntity")] - @Html.NewLine() - @Html.PadLeft(8) new @table.ConvertedName GetById([Param("@pkCol.ConvertedName")]@primaryKeyType id); - @Html.NewLine() + @NewLine() + @PadLeft(8) new @table.ConvertedName GetById([Param("@pkCol.ConvertedName")]@primaryKeyType id); + @NewLine() [Statement(Id = "GetEntity")] - @Html.NewLine() - @Html.PadLeft(8) new Task<@table.ConvertedName> GetByIdAsync([Param("@pkCol.ConvertedName")]@primaryKeyType id); - @Html.NewLine() + @NewLine() + @PadLeft(8) new Task<@table.ConvertedName> GetByIdAsync([Param("@pkCol.ConvertedName")]@primaryKeyType id); + @NewLine() [Statement(Id = "Delete")] - @Html.NewLine() - @Html.PadLeft(8) new int DeleteById([Param("@pkCol.ConvertedName")]@primaryKeyType id); - @Html.NewLine() + @NewLine() + @PadLeft(8) new int DeleteById([Param("@pkCol.ConvertedName")]@primaryKeyType id); + @NewLine() [Statement(Id = "Delete")] - @Html.NewLine() - @Html.PadLeft(8) new Task<@("int")> DeleteByIdAsync([Param("@pkCol.ConvertedName")]@primaryKeyType id); - @Html.NewLine() + @NewLine() + @PadLeft(8) new Task<@("int")> DeleteByIdAsync([Param("@pkCol.ConvertedName")]@primaryKeyType id); + @NewLine() } - } - } + } +} diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Service.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Service.cshtml index 8046b04..a2f7be3 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Service.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Service.cshtml @@ -1,8 +1,7 @@ @using SmartCode @using SmartCode.Generator.Extensions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_CSharpLayout.cshtml"; var project = Model.Project; var table = Model.GetCurrentTable(); var pkCol = table.PKColumn; @@ -18,6 +17,7 @@ var repositoryName = $"{table.ConvertedName}Repository"; var repositoryCamelName = NamingUtil.CamelCase(repositoryName); } +@Include("Copyright.cshtml", Model) using System; using System.Linq; @@ -26,14 +26,14 @@ using @(project.Module).Repository; namespace @(project.Module).Service { - @table.GetCSharpSummary() +@table.GetCSharpSummary() public class @serviceName { public I@(repositoryName) @repositoryName { get; } public @serviceName (I@(repositoryName) @repositoryCamelName) { - @repositoryName = @repositoryCamelName; +@repositoryName = @repositoryCamelName; } public @insertRetType Insert(@entityName @entityCamelName) diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Directory.Build.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Directory.Build.cshtml index 8b57d59..4b39904 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Directory.Build.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Directory.Build.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-DockerIgnore.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-DockerIgnore.cshtml index 037b231..b023cad 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-DockerIgnore.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-DockerIgnore.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Dockerfile.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Dockerfile.cshtml index 99a9660..ec60ed7 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Dockerfile.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Dockerfile.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var apiProjectName = $"{project.Module}.API"; diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-GitIgnore.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-GitIgnore.cshtml index 4446dca..6ce0dfd 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-GitIgnore.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-GitIgnore.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Version.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Version.cshtml index 7e366f2..8667cca 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Version.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln-Version.cshtml @@ -1,5 +1,5 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln.cshtml index 6444783..32ea708 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/Sln.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/Sln.cshtml @@ -1,6 +1,5 @@ -@using System.IO -@using SmartCode -@model BuildContext +@using SmartCode +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var configFileName = System.IO.Path.GetFileName(project.ConfigPath); @@ -10,21 +9,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27428.2037 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "@(project.Module).Entity", "src\@(project.Module).Entity\@(project.Module).Entity.csproj", "{88A185DB-0242-4843-9284-334850FF611C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "@(project.Module).Repository", "src\@(project.Module).Repository\@(project.Module).Repository.csproj", "{6A7E8C9E-6A9F-49FD-AD48-F297E515EB10}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "@(project.Module).Service", "src\@(project.Module).Service\@(project.Module).Service.csproj", "{D274EF03-E956-40EF-B874-58A5FBE83A00}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "@(project.Module).API", "src\@(project.Module).API\@(project.Module).API.csproj", "{CEA52B07-9E7F-4A4D-AF6D-4C43E7255D0E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "API", "API", "{20C12BB6-7202-46F4-9A92-3528FFC2B91B}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{68E40CDE-0E75-4372-96C4-1507D50993CD}" ProjectSection(SolutionItems) = preProject Directory.Build.props = Directory.Build.props -build\version.props = build\version.props build\@configFileName = build\@configFileName +build\version.props = build\version.props EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{1666CC75-624D-4AE9-84D7-7F9F338658C5}" @@ -34,32 +23,7 @@ Dockerfile = Dockerfile EndProjectSection EndProject Global -GlobalSection(SolutionConfigurationPlatforms) = preSolution -Debug|Any CPU = Debug|Any CPU -Release|Any CPU = Release|Any CPU -EndGlobalSection -GlobalSection(ProjectConfigurationPlatforms) = postSolution -{88A185DB-0242-4843-9284-334850FF611C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{88A185DB-0242-4843-9284-334850FF611C}.Debug|Any CPU.Build.0 = Debug|Any CPU -{88A185DB-0242-4843-9284-334850FF611C}.Release|Any CPU.ActiveCfg = Release|Any CPU -{88A185DB-0242-4843-9284-334850FF611C}.Release|Any CPU.Build.0 = Release|Any CPU -{6A7E8C9E-6A9F-49FD-AD48-F297E515EB10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{6A7E8C9E-6A9F-49FD-AD48-F297E515EB10}.Debug|Any CPU.Build.0 = Debug|Any CPU -{6A7E8C9E-6A9F-49FD-AD48-F297E515EB10}.Release|Any CPU.ActiveCfg = Release|Any CPU -{6A7E8C9E-6A9F-49FD-AD48-F297E515EB10}.Release|Any CPU.Build.0 = Release|Any CPU -{D274EF03-E956-40EF-B874-58A5FBE83A00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{D274EF03-E956-40EF-B874-58A5FBE83A00}.Debug|Any CPU.Build.0 = Debug|Any CPU -{D274EF03-E956-40EF-B874-58A5FBE83A00}.Release|Any CPU.ActiveCfg = Release|Any CPU -{D274EF03-E956-40EF-B874-58A5FBE83A00}.Release|Any CPU.Build.0 = Release|Any CPU -{CEA52B07-9E7F-4A4D-AF6D-4C43E7255D0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{CEA52B07-9E7F-4A4D-AF6D-4C43E7255D0E}.Debug|Any CPU.Build.0 = Debug|Any CPU -{CEA52B07-9E7F-4A4D-AF6D-4C43E7255D0E}.Release|Any CPU.ActiveCfg = Release|Any CPU -{CEA52B07-9E7F-4A4D-AF6D-4C43E7255D0E}.Release|Any CPU.Build.0 = Release|Any CPU -EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection -GlobalSection(NestedProjects) = preSolution -{CEA52B07-9E7F-4A4D-AF6D-4C43E7255D0E} = {20C12BB6-7202-46F4-9A92-3528FFC2B91B} -EndGlobalSection EndGlobal \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Delete.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Delete.cshtml index 0180f28..9c397ce 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Delete.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Delete.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml index 345b7ad..7be0c16 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetRecord.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetRecord.cshtml index 9ad821a..3017b13 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetRecord.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-GetRecord.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Insert.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Insert.cshtml index e984c36..b6c0726 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Insert.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Insert.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -21,10 +22,10 @@ @for (var colIndex = 0; colIndex < table.Columns.Count(); colIndex++) { var col = table.Columns.ElementAt(colIndex); - @if (!col.AutoIncrement) + if (!col.AutoIncrement) { - @Html.PadLeft(6)@col.Name@(colIndex == table.Columns.Count() - 1 ? "" : ",") - @Html.NewLine() + @PadLeft(6)@col.Name@(colIndex == table.Columns.Count() - 1 ? "" : ",") + @NewLine() } } ) @@ -33,16 +34,16 @@ @for (var colIndex = 0; colIndex < table.Columns.Count(); colIndex++) { var col = table.Columns.ElementAt(colIndex); - @if (!col.AutoIncrement) + if (!col.AutoIncrement) { - @Html.PadLeft(6)@prefix@col.ConvertedName@(colIndex == table.Columns.Count() - 1 ? "" : ",") - @Html.NewLine() + @PadLeft(6)@prefix@col.ConvertedName@(colIndex == table.Columns.Count() - 1 ? "" : ",") + @NewLine() } } ) @if (autoIncrement) { - @switch (dbSource.DbRepository.DbProvider) + switch (dbSource.DbRepository.DbProvider) { case DbProvider.MariaDB: case DbProvider.MySql: @@ -61,6 +62,6 @@ break; } } - @Html.NewLine() + @NewLine() } \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-IsExist.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-IsExist.cshtml index 8b288d1..a877ec6 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-IsExist.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-IsExist.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var table = Model.GetCurrentTable(); } @@ -9,5 +9,4 @@ Select Count(1) From @table.Name T - - + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Query.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Query.cshtml index d0e59e7..9b69a07 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Query.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Query.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml index 680b0a7..8ea99f6 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -20,8 +21,8 @@ - Select - + Select + From @table.Name As T @@ -29,5 +30,5 @@ T.@pkCol.Name Desc - Limit @(dbPrefix)PageSize Offset @(dbPrefix)Offset + Limit @(dbPrefix)PageSize Offset @(dbPrefix)Offset \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Update.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Update.cshtml index 025f542..a4b857e 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Update.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/CURD/SqlMap-Update.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Columns.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Columns.cshtml index e0eda88..b76471f 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Columns.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Columns.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-MySql.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-MySql.cshtml index 697dfbe..4f45572 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-MySql.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-MySql.cshtml @@ -1,8 +1,8 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var buildTask = Model.Build; @@ -19,20 +19,20 @@ var resultMapName = $"{table.ConvertedName}ResultMap"; var queryStatementResultMap = table.HasColNameNotEqConvertedName ? $"ResultMap=\"{resultMapName}\"" : ""; } -@section QueryByPage - { - - - Select - - From @table.Name As T - - - - T.@pkCol.Name Desc - - - Limit @(dbPrefix)Offset,@(dbPrefix)PageSize - -} + + @Include("SqlMap-ResultMaps.cshtml", Model) + + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + @Include("./CURD/SqlMap-Query.cshtml", Model) + @Include("./CURD/SqlMap-QueryByPage.cshtml", Model) + @Include("./CURD/SqlMap-GetRecord.cshtml", Model) + @Include("./CURD/SqlMap-GetEntity.cshtml", Model) + @Include("./CURD/SqlMap-IsExist.cshtml", Model) + + + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Oracle.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Oracle.cshtml index e0ce1d2..ac8fa90 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Oracle.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-Oracle.cshtml @@ -1,8 +1,8 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var buildTask = Model.Build; @@ -20,52 +20,56 @@ var queryStatementResultMap = table.HasColNameNotEqConvertedName ? $"ResultMap=\"{resultMapName}\"" : ""; } -@section QueryByPage - { - - - Select TT.* From - (Select ROW_NUMBER() Over(Order By T.@pkCol.Name Desc) Row_Index,T.* From @table.Name T - ) TT - Where TT.Row_Index Between ((@(dbPrefix)PageIndex-1)*@(dbPrefix)PageSize+1) And (@(dbPrefix)PageIndex*@(dbPrefix)PageSize) - -} -@section GetEntity - { - - - Select T.* From @table.Name T - - ROWNUM = 1 - @foreach (var col in table.Columns) - { - - T.@col.Name= @($"{dbPrefix}{col.ConvertedName}") - - } - - -} + + @Include("SqlMap-ResultMaps.cshtml", Model) + + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) -@section Query - { - - - select * from ( + + + select * from ( SELECT T.* From @table.Name T - + T.@pkCol.Name Desc - ) - - - - -} + ) + + + + + + + + Select TT.* From + (Select ROW_NUMBER() Over(Order By T.@pkCol.Name Desc) Row_Index,T.* From @table.Name T + ) TT + Where TT.Row_Index Between ((@(dbPrefix)PageIndex-1)*@(dbPrefix)PageSize+1) And (@(dbPrefix)PageIndex*@(dbPrefix)PageSize) + + @Include("./CURD/SqlMap-GetRecord.cshtml", Model) + + + + Select T.* From @table.Name T + + ROWNUM = 1 + @foreach (var col in table.Columns) + { + + T.@col.Name= @($"{dbPrefix}{col.ConvertedName}") + + } + + + @Include("./CURD/SqlMap-IsExist.cshtml", Model) + + + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-PostgreSql.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-PostgreSql.cshtml index 7ee9f49..10560f8 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-PostgreSql.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-PostgreSql.cshtml @@ -1,8 +1,8 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var build = Model.Build; var dbSource = Model.GetDataSource(); @@ -21,20 +21,19 @@ var queryStatementResultMap = table.HasColNameNotEqConvertedName ? $"ResultMap=\"{resultMapName}\"" : ""; } -@section QueryByPage - { - - - Select - - From @table.Name As T - - - - T.@pkCol.Name Desc - - - Limit @(dbPrefix)PageSize Offset @(dbPrefix)Offset - -} + + @Include("SqlMap-ResultMaps.cshtml", Model) + + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + @Include("./CURD/SqlMap-Query.cshtml", Model) + @Include("./CURD/SqlMap-QueryByPage.cshtml", Model) + @Include("./CURD/SqlMap-GetRecord.cshtml", Model) + @Include("./CURD/SqlMap-GetEntity.cshtml", Model) + @Include("./CURD/SqlMap-IsExist.cshtml", Model) + + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-ResultMaps.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-ResultMaps.cshtml index 4c6f62a..3d27799 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-ResultMaps.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-ResultMaps.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SQLite.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SQLite.cshtml index b8abc2d..4f45572 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SQLite.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SQLite.cshtml @@ -1,8 +1,8 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var buildTask = Model.Build; @@ -19,19 +19,20 @@ var resultMapName = $"{table.ConvertedName}ResultMap"; var queryStatementResultMap = table.HasColNameNotEqConvertedName ? $"ResultMap=\"{resultMapName}\"" : ""; } -@section QueryByPage - { - - - Select - - From @table.Name As T - - - - T.@pkCol.Name Desc - - - Limit @(dbPrefix)PageSize Offset @(dbPrefix)Offset - -} \ No newline at end of file + + + @Include("SqlMap-ResultMaps.cshtml", Model) + + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + @Include("./CURD/SqlMap-Query.cshtml", Model) + @Include("./CURD/SqlMap-QueryByPage.cshtml", Model) + @Include("./CURD/SqlMap-GetRecord.cshtml", Model) + @Include("./CURD/SqlMap-GetEntity.cshtml", Model) + @Include("./CURD/SqlMap-IsExist.cshtml", Model) + + + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SqlServer.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SqlServer.cshtml index cf0da07..e04ec43 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SqlServer.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-SqlServer.cshtml @@ -1,16 +1,17 @@ -@using SmartCode +@using System +@using System.Linq +@using SmartCode @using SmartCode.Db @using System.Text.RegularExpressions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var versionNo = 2008; var sqlServerVersion = dbSource.DbRepository.SqlMapper.ExecuteScalar(new SmartSql.RequestContext - { - RealSql = "Select @@Version;" - }); + { + RealSql = "Select @@Version;" + }); var versionRegex = new Regex(@"^Microsoft SQL Server (\d*)", RegexOptions.Singleline); var versionNoStr = versionRegex.Match(sqlServerVersion).Groups[1].Value; int.TryParse(versionNoStr, out versionNo); @@ -29,66 +30,71 @@ var queryStatementResultMap = table.HasColNameNotEqConvertedName ? $"ResultMap=\"{resultMapName}\"" : ""; } -@section QueryByPage -{ - - - @if (versionNo >= 2012) - { - - Select - - From @table.Name T With(NoLock) - - Order By T.@pkCol.Name Desc - Offset ((@(dbPrefix)PageIndex-1)*@(dbPrefix)PageSize) Rows Fetch Next @(dbPrefix)PageSize Rows Only; - - } - else - { - - Select TT.* From - (Select ROW_NUMBER() Over(Order By T.@pkCol.Name Desc) Row_Index,T.* From @table.Name T With(NoLock) - ) TT - Where TT.Row_Index Between ((@(dbPrefix)PageIndex-1)*@(dbPrefix)PageSize+1) And (@(dbPrefix)PageIndex*@(dbPrefix)PageSize); - - } - -} + + @Include("SqlMap-ResultMaps.cshtml", Model) + + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + + + + SELECT + + (@(dbPrefix)Taken) + + + From @table.Name T + + + + T.@pkCol.Name Desc + + + -@section GetEntity -{ - - - Select Top 1 - - From @table.Name T With(NoLock) - - @foreach (var col in table.Columns) + + + @if (versionNo >= 2012) { - - T.@col.Name= @($"{dbPrefix}{col.ConvertedName}") - + + Select + + From @table.Name T With(NoLock) + + Order By T.@pkCol.Name Desc + Offset ((@(dbPrefix)PageIndex-1)*@(dbPrefix)PageSize) Rows Fetch Next @(dbPrefix)PageSize Rows Only; + } - - -} + else + { + + Select TT.* From + (Select ROW_NUMBER() Over(Order By T.@pkCol.Name Desc) Row_Index,T.* From @table.Name T With(NoLock) + ) TT + Where TT.Row_Index Between ((@(dbPrefix)PageIndex-1)*@(dbPrefix)PageSize+1) And (@(dbPrefix)PageIndex*@(dbPrefix)PageSize); + + } + + @Include("./CURD/SqlMap-GetRecord.cshtml", Model) + + + + Select Top 1 + + From @table.Name T With(NoLock) + + @foreach (var col in table.Columns) + { + + T.@col.Name= @($"{dbPrefix}{col.ConvertedName}") + + } + + + @Include("./CURD/SqlMap-IsExist.cshtml", Model) + -@section Query -{ - - - SELECT - - (@(dbPrefix)Taken) - - - From @table.Name T - - - - T.@pkCol.Name Desc - - - -} \ No newline at end of file + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml new file mode 100644 index 0000000..6fe64aa --- /dev/null +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml @@ -0,0 +1,19 @@ +@using SmartCode +@using SmartCode.Db +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate +@{ + var dbSource = Model.GetDataSource(); + var table = Model.GetCurrentTable(); + var dbPrefix = dbSource.DbProvider.ParameterPrefix; +} + + + + @foreach (var col in table.Columns) + { + + T.@col.Name = @dbPrefix@col.ConvertedName + + } + + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/_SqlMapLayout.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/_SqlMapLayout.cshtml index b3257bf..b0d8579 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/_SqlMapLayout.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap-Partials/_SqlMapLayout.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -15,9 +15,9 @@ } - @{ await Html.RenderPartialAsync("SqlMap-ResultMaps.cshtml", Model); } + @Include("SqlMap-ResultMaps.cshtml", Model) - @{ await Html.RenderPartialAsync("SqlMap-Columns.cshtml", Model); } + @Include("SqlMap-Columns.cshtml", Model); } @foreach (var col in table.Columns) @@ -35,7 +35,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-Insert.cshtml", Model); + Include("./CURD/SqlMap-Insert.cshtml", Model); } @if (IsSectionDefined("Delete")) @@ -44,7 +44,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-Delete.cshtml", Model); + Include("./CURD/SqlMap-Delete.cshtml", Model); } @if (IsSectionDefined("Update")) @@ -53,7 +53,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-Update.cshtml", Model); + Include("./CURD/SqlMap-Update.cshtml", Model); } @if (IsSectionDefined("Query")) @@ -62,7 +62,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-Query.cshtml", Model); + Include("./CURD/SqlMap-Query.cshtml", Model); } @if (IsSectionDefined("QueryByPage")) @@ -71,7 +71,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-QueryByPage.cshtml", Model); + Include("./CURD/SqlMap-QueryByPage.cshtml", Model); } @if (IsSectionDefined("GetRecord")) @@ -80,7 +80,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-GetRecord.cshtml", Model); + Include("./CURD/SqlMap-GetRecord.cshtml", Model); } @if (IsSectionDefined("GetEntity")) @@ -89,7 +89,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-GetEntity.cshtml", Model); + Include("./CURD/SqlMap-GetEntity.cshtml", Model); } @if (IsSectionDefined("IsExist")) @@ -98,7 +98,7 @@ } else { - await Html.RenderPartialAsync("./CURD/SqlMap-IsExist.cshtml", Model); + Include("./CURD/SqlMap-IsExist.cshtml", Model); } diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap.cshtml index fbfb433..a7e1e3f 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMap.cshtml @@ -1,12 +1,12 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); } -@{ await Html.RenderPartialAsync($"./SqlMap-Partials/SqlMap-{dbSource.DbProvider.Name}.cshtml", Model); } \ No newline at end of file +@Include($"./SqlMap-Partials/SqlMap-{dbSource.DbProvider.Name}.cshtml", Model) \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMapConfig.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMapConfig.cshtml index 07cac71..9ddc4ac 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMapConfig.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/SqlMapConfig.cshtml @@ -1,6 +1,7 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@using SmartSql +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -10,7 +11,7 @@ diff --git a/src/SmartCode.Generator/RazorTemplates/CSharp/_CSharpLayout.cshtml b/src/SmartCode.Generator/RazorTemplates/CSharp/_CSharpLayout.cshtml index 15059b9..2d50de1 100644 --- a/src/SmartCode.Generator/RazorTemplates/CSharp/_CSharpLayout.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/CSharp/_CSharpLayout.cshtml @@ -1,4 +1,4 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ await Html.RenderPartialAsync("Copyright.cshtml", Model); } @RenderBody() diff --git a/src/SmartCode.Generator/RazorTemplates/ETL/ToMysqlTable.cshtml b/src/SmartCode.Generator/RazorTemplates/ETL/ToMysqlTable.cshtml index 4f6606d..395990a 100644 --- a/src/SmartCode.Generator/RazorTemplates/ETL/ToMysqlTable.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/ETL/ToMysqlTable.cshtml @@ -1,6 +1,9 @@ -@using SmartCode +@using System +@using System.Collections.Generic +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -63,7 +66,7 @@ DataSource: AutoIncrement: @(PKColumn.AutoIncrement ? "true" : "false") @if (!String.IsNullOrEmpty(modifyTime)) { - @Html.PadLeft(4)ModifyTime: @modifyTime + @PadLeft(4)ModifyTime: @modifyTime } @@ -113,6 +116,6 @@ Build: {Column: @col.Name,Mapping: @col.ConvertedName} if (colIndex < table.Columns.Count() - 1) {@(",")} - @Html.NewLine() + @NewLine() } ] diff --git a/src/SmartCode.Generator/RazorTemplates/ETL/ToPGBuild.cshtml b/src/SmartCode.Generator/RazorTemplates/ETL/ToPGBuild.cshtml index 9cbf35f..8b6225e 100644 --- a/src/SmartCode.Generator/RazorTemplates/ETL/ToPGBuild.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/ETL/ToPGBuild.cshtml @@ -1,6 +1,9 @@ -@using SmartCode +@using System +@using System.Collections.Generic +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -59,7 +62,7 @@ DataSource: AutoIncrement: @(PKColumn.AutoIncrement ? "true" : "false") @if (!String.IsNullOrEmpty(modifyTime)) { - @Html.PadLeft(4)ModifyTime: @modifyTime + @PadLeft(4)ModifyTime: @modifyTime } @@ -107,6 +110,6 @@ Build: {Column: @col.Name,Mapping: @col.ConvertedName} if (colIndex < table.Columns.Count() - 1) {@(",")} - @Html.NewLine() + @NewLine() } ] diff --git a/src/SmartCode.Generator/RazorTemplates/Java/AbstractEntity.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/AbstractEntity.cshtml index 58d289e..5cc2c9e 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/AbstractEntity.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/AbstractEntity.cshtml @@ -1,10 +1,9 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; } - +@Include("Copyright.cshtml", Model) package @(project.Module).entity; diff --git a/src/SmartCode.Generator/RazorTemplates/Java/AppConfig.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/AppConfig.cshtml index 6fa690f..0f26f56 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/AppConfig.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/AppConfig.cshtml @@ -1,11 +1,10 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; } - +@Include("Copyright.cshtml", Model) package @(project.Module).server.config; diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Application.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Application.cshtml index 3a8a599..11f9a0a 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Application.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Application.cshtml @@ -1,7 +1,6 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var appName = "Demo"; @@ -12,6 +11,7 @@ } var appClassName = $"{appName}Application"; } +@Include("Copyright.cshtml", Model) package @(project.Module).server; diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Controller.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Controller.cshtml index 79f54a0..948b084 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Controller.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Controller.cshtml @@ -1,7 +1,7 @@ +@using System @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -22,6 +22,7 @@ throw new ArgumentException("can not find Project -> BuildTasks -> Service ."); } } +@Include("Copyright.cshtml", Model) package @(project.Module).@buildTask.Module; @@ -33,7 +34,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import @(project.Module).@(serviceBuild.Module).@serviceName; -@Html.NewLine() +@NewLine() @@RestController @@RequestMapping("@entityCamelName") public class @controllerName { diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Copyright.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Copyright.cshtml index f43b08a..38f1299 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Copyright.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Copyright.cshtml @@ -1,11 +1,12 @@ -@using SmartCode -@model BuildContext +@using System +@using SmartCode +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } /******************************* -* @@author @project.Author -* @@date @DateTime.Now.ToString("yyyy-MM-dd HH:mm") -* Code Generate By SmartCode -* Code Generate Github : https://github.com/Ahoo-Wang/SmartCode -*******************************/ \ No newline at end of file + * @@author @project.Author + * @@date @DateTime.Now.ToString("yyyy-MM-dd HH:mm") + * Code Generate By SmartCode + * Code Generate Github : https://github.com/Ahoo-Wang/SmartCode + *******************************/ \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Entity.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Entity.cshtml index 93945c0..f02fd07 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Entity.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Entity.cshtml @@ -1,8 +1,9 @@ -@using SmartCode +@using System +@using System.Collections.Generic +@using SmartCode @using SmartCode.Generator.Extensions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -57,7 +58,7 @@ } } - +@Include("Copyright.cshtml", Model) package @(project.Module).@buildTask.Module; diff --git a/src/SmartCode.Generator/RazorTemplates/Java/GenericRepository.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/GenericRepository.cshtml index 609f174..64b9576 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/GenericRepository.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/GenericRepository.cshtml @@ -1,9 +1,8 @@ @using SmartCode @using SmartCode.Db; @using SmartCode.Generator.Extensions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -17,4 +16,5 @@ var dbSource = Model.GetDataSource(); } +@Include("Copyright.cshtml", Model) diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Pom-Api.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Pom-Api.cshtml index 9f08672..ff594e9 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Pom-Api.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Pom-Api.cshtml @@ -1,8 +1,7 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = null; var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Pom-Parent.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Pom-Parent.cshtml index f924ae6..95fb6b4 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Pom-Parent.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Pom-Parent.cshtml @@ -1,8 +1,7 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = null; var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Pom-Server.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Pom-Server.cshtml index 4d30c45..c98cc93 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Pom-Server.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Pom-Server.cshtml @@ -1,9 +1,8 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = null; var project = Model.Project; var dbSource = Model.GetDataSource(); } diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Repository.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Repository.cshtml index b937e8e..7d60673 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Repository.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Repository.cshtml @@ -1,8 +1,9 @@ +@using System +@using System.Collections.Generic @using SmartCode @using SmartCode.Db; -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -44,6 +45,7 @@ } var genericParameterKey = $"{table.ConvertedName},{primaryKeyType}"; } +@Include("Copyright.cshtml", Model) package @(project.Module).@buildTask.Module; @@ -52,7 +54,7 @@ import org.springframework.stereotype.Repository; import @(genericRepositoryPackageName).GenericRepository; import @(project.Module).@(entityBuild.Module).@table.ConvertedName; -@Html.NewLine() +@NewLine() @@Repository @@Mapper public interface @(table.ConvertedName)Repository extends GenericRepository<@genericParameterKey> { diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Resources/Application-YAML.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Resources/Application-YAML.cshtml index 731e955..f2a41b9 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Resources/Application-YAML.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Resources/Application-YAML.cshtml @@ -1,9 +1,10 @@ +@using System @using System.Text @using MySql.Data.MySqlClient @using Npgsql @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var buildTask = Model.Build; diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Service.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Service.cshtml index 876562a..f683346 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Service.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Service.cshtml @@ -1,7 +1,7 @@ +@using System @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_JavaLayout.cshtml"; var project = Model.Project; var buildTask = Model.Build; var table = Model.GetCurrentTable(); @@ -22,8 +22,7 @@ throw new ArgumentException("can not find Project -> BuildTasks -> [Repository] ."); } } - - +@Include("Copyright.cshtml", Model) package @(project.Module).@buildTask.Module; @@ -37,7 +36,7 @@ import java.util.stream.Collectors; import @(project.Module).@(repositoryBuild.Module).@repositoryName; -@Html.NewLine() +@NewLine() @@Service public class @serviceName { @@Autowired diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Delete.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Delete.cshtml index 8d98c88..f69b45c 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Delete.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Delete.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetById.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetById.cshtml index c6fc4e4..588672f 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetById.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetById.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml index e0d96d7..4973757 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetEntity.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetTotal.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetTotal.cshtml index 103f780..62ecdd2 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetTotal.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-GetTotal.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Insert.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Insert.cshtml index 3519a47..d976057 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Insert.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Insert.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -20,10 +21,10 @@ @for (var colIndex = 0; colIndex < table.Columns.Count(); colIndex++) { var col = table.Columns.ElementAt(colIndex); - @if (!col.AutoIncrement) + if (!col.AutoIncrement) { - @Html.PadLeft(6)@col.Name@(colIndex == table.Columns.Count() - 1 ? "" : ",") - @Html.NewLine() + @PadLeft(6)@col.Name@(colIndex == table.Columns.Count() - 1 ? "" : ",") + @NewLine() } } ) @@ -32,11 +33,11 @@ @for (var colIndex = 0; colIndex < table.Columns.Count(); colIndex++) { var col = table.Columns.ElementAt(colIndex); - @if (!col.AutoIncrement) + if (!col.AutoIncrement) { - @Html.PadLeft(6)#{@col.ConvertedName} + @PadLeft(6)#{@col.ConvertedName} @(colIndex == table.Columns.Count() - 1 ? "" : ",") - @Html.NewLine() + @NewLine() } } ) diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Query.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Query.cshtml index e96e090..3bebac1 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Query.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Query.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml index 604459c..d3c267f 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-QueryByPage.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -16,5 +16,5 @@ \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Update.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Update.cshtml index 16d5682..1334c8b 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Update.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/CURD/SqlMap-Update.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -11,20 +12,19 @@ throw new SmartCodeException($"{table.Name} can not find PKColumn!"); } } - update @table.Name @for (var colIndex = 0; colIndex < table.Columns.Count(); colIndex++) { var col = table.Columns.ElementAt(colIndex); - @if (col.IsPrimaryKey) + if (col.IsPrimaryKey) { continue; } - @Html.PadLeft(6)@col.Name = #{@col.ConvertedName} + @PadLeft(6)@col.Name = #{@col.ConvertedName} @(colIndex == table.Columns.Count() - 1 ? "" : ",") - @Html.NewLine() + @NewLine() } where @pkCol.Name=#{@pkCol.Name} diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-Columns.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-Columns.cshtml index 05b88ae..4679123 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-Columns.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-Columns.cshtml @@ -1,6 +1,7 @@ -@using SmartCode +@using System.Linq +@using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); @@ -13,5 +14,5 @@ var col = table.Columns.ElementAt(colIndex); @($"{col.Name}")@(colIndex == table.Columns.Count() - 1 ? "" : ",") } - @Html.NewLine() + @NewLine() \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-MySql.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-MySql.cshtml index 5f53444..75078e5 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-MySql.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-MySql.cshtml @@ -1,8 +1,7 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var buildTask = Model.Build; @@ -14,13 +13,21 @@ } var resultMapName = $"{table.ConvertedName}ResultMap"; + + var repositoryName = $"{project.Module}.{buildTask.Module}.{table.ConvertedName}Repository"; } -@section QueryByPage -{ - -} \ No newline at end of file + + + @Include("SqlMap-ResultMaps.cshtml", Model) + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + @Include("./CURD/SqlMap-Query.cshtml", Model) + @Include("./CURD/SqlMap-QueryByPage.cshtml", Model) + @Include("./CURD/SqlMap-GetTotal.cshtml", Model) + @Include("./CURD/SqlMap-GetEntity.cshtml", Model) + @Include("./CURD/SqlMap-GetById.cshtml", Model) + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-PostgreSql.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-PostgreSql.cshtml index 5f53444..75078e5 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-PostgreSql.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-PostgreSql.cshtml @@ -1,8 +1,7 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var buildTask = Model.Build; @@ -14,13 +13,21 @@ } var resultMapName = $"{table.ConvertedName}ResultMap"; + + var repositoryName = $"{project.Module}.{buildTask.Module}.{table.ConvertedName}Repository"; } -@section QueryByPage -{ - -} \ No newline at end of file + + + @Include("SqlMap-ResultMaps.cshtml", Model) + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + @Include("./CURD/SqlMap-Query.cshtml", Model) + @Include("./CURD/SqlMap-QueryByPage.cshtml", Model) + @Include("./CURD/SqlMap-GetTotal.cshtml", Model) + @Include("./CURD/SqlMap-GetEntity.cshtml", Model) + @Include("./CURD/SqlMap-GetById.cshtml", Model) + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-ResultMaps.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-ResultMaps.cshtml index 0b9b20f..b947195 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-ResultMaps.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-ResultMaps.cshtml @@ -1,8 +1,9 @@ -@using SmartCode +@using System +@using SmartCode @using SmartCode.Db @using SmartCode.Generator @using SmartCode.Generator.Entity -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; @@ -44,8 +45,6 @@ return String.IsNullOrEmpty(jdbcType) ? "" : $" jdbcType=\"{jdbcType}\""; } } - - @foreach (var col in table.Columns) diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-SqlServer.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-SqlServer.cshtml index edf1342..cdcc367 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-SqlServer.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-SqlServer.cshtml @@ -1,9 +1,10 @@ -@using SmartCode +@using System +@using System.Linq +@using SmartCode @using SmartCode.Db @using System.Text.RegularExpressions -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "_SqlMapLayout.cshtml"; var project = Model.Project; var dbSource = Model.GetDataSource(); var versionNo = 2008; @@ -27,10 +28,28 @@ var notEqCols = table.Columns.Where(m => m.ConvertedName != m.Name); var resultMapName = $"{table.ConvertedName}ResultMap"; var queryStatementResultMap = table.HasColNameNotEqConvertedName ? $"ResultMap=\"{resultMapName}\"" : ""; + + var repositoryName = $"{project.Module}.{buildTask.Module}.{table.ConvertedName}Repository"; } -@section QueryByPage -{ + + + @Include("SqlMap-ResultMaps.cshtml", Model) + @Include("SqlMap-Columns.cshtml", Model) + @Include("SqlMap-WhereQueryParams.cshtml", Model) + @Include("./CURD/SqlMap-Insert.cshtml", Model) + @Include("./CURD/SqlMap-Delete.cshtml", Model) + @Include("./CURD/SqlMap-Update.cshtml", Model) + + + + -} - -@section GetEntity -{ + @Include("./CURD/SqlMap-GetTotal.cshtml", Model) + -} - -@section Query -{ - - -} \ No newline at end of file + @Include("./CURD/SqlMap-GetById.cshtml", Model) + \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml index 43d54e1..11618d3 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/SqlMap-WhereQueryParams.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/_SqlMapLayout.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/_SqlMapLayout.cshtml index a69ea30..41288d1 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/_SqlMapLayout.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap-Partials/_SqlMapLayout.cshtml @@ -1,6 +1,6 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); diff --git a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap.cshtml index bd9468e..3925950 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/SqlMap.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/SqlMap.cshtml @@ -1,12 +1,12 @@ @using SmartCode @using SmartCode.Db -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; var dbSource = Model.GetDataSource(); } -@{ await Html.RenderPartialAsync($"./SqlMap-Partials/SqlMap-{dbSource.DbProvider.Name}.cshtml", Model); } +@Include($"./SqlMap-Partials/SqlMap-{dbSource.DbProvider.Name}.cshtml", Model) \ No newline at end of file diff --git a/src/SmartCode.Generator/RazorTemplates/Java/Test/Application-Test.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/Test/Application-Test.cshtml index b524926..9d974c4 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/Test/Application-Test.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/Test/Application-Test.cshtml @@ -1,7 +1,6 @@ @using SmartCode -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ - Layout = "../_JavaLayout.cshtml"; var project = Model.Project; var appName = "Demo"; @@ -12,6 +11,7 @@ } var appClassTestsName = $"{appName}ApplicationTests"; } +@Include("../Copyright.cshtml", Model) package @(project.Module).server; diff --git a/src/SmartCode.Generator/RazorTemplates/Java/_JavaLayout.cshtml b/src/SmartCode.Generator/RazorTemplates/Java/_JavaLayout.cshtml index 15059b9..e278e23 100644 --- a/src/SmartCode.Generator/RazorTemplates/Java/_JavaLayout.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Java/_JavaLayout.cshtml @@ -1,4 +1,4 @@ @using SmartCode -@model BuildContext -@{ await Html.RenderPartialAsync("Copyright.cshtml", Model); } -@RenderBody() +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate +@Include("Copyright.cshtml", Model) +@* @RenderBody() *@ diff --git a/src/SmartCode.Generator/RazorTemplates/Sql/DbToMySql.cshtml b/src/SmartCode.Generator/RazorTemplates/Sql/DbToMySql.cshtml index 7de3a8f..731ca5d 100644 --- a/src/SmartCode.Generator/RazorTemplates/Sql/DbToMySql.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Sql/DbToMySql.cshtml @@ -1,5 +1,7 @@ -@using SmartCode -@model BuildContext +@using System +@using System.Linq +@using SmartCode +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var all_table = Model.GetCurrentAllTable(); } @@ -32,14 +34,14 @@ @for (var colIndex = 0; colIndex < table.Columns.Count(); colIndex++) { var col = table.Columns.ElementAt(colIndex); - @col.ConvertedName @Html.PadLeft(4) @GetPGSqlType(col) @Html.PadLeft(4) @(col.IsNullable ? "null" : "not null") @(col.IsPrimaryKey?" primary key":"") @(col.AutoIncrement?" AUTO_INCREMENT":"") @if (!String.IsNullOrEmpty(col.Description)) + @col.ConvertedName @PadLeft(4) @GetPGSqlType(col) @PadLeft(4) @(col.IsNullable ? "null" : "not null") @(col.IsPrimaryKey?" primary key":"") @(col.AutoIncrement?" AUTO_INCREMENT":"") if (!String.IsNullOrEmpty(col.Description)) { comment '@col.Description' } if (colIndex < table.Columns.Count() - 1) {@(",")} - @Html.NewLine() + @NewLine() } ); - + } diff --git a/src/SmartCode.Generator/RazorTemplates/Sql/DbToPGSql.cshtml b/src/SmartCode.Generator/RazorTemplates/Sql/DbToPGSql.cshtml index 8e21140..5333981 100644 --- a/src/SmartCode.Generator/RazorTemplates/Sql/DbToPGSql.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/Sql/DbToPGSql.cshtml @@ -1,5 +1,6 @@ -@using SmartCode -@model BuildContext +@using System +@using SmartCode +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var all_table = Model.GetCurrentAllTable(); } @@ -31,8 +32,8 @@ @foreach (var col in table.Columns) { - @col.ConvertedName @Html.PadLeft(4) @GetPGSqlType(col) @Html.PadLeft(4) @(col.IsNullable ? "null" : "not null") @(",") - @Html.NewLine() + @col.ConvertedName @PadLeft(4) @GetPGSqlType(col) @PadLeft(4) @(col.IsNullable ? "null" : "not null") @(",") + @NewLine() } @if (table.PKColumn != null) { @@ -44,14 +45,14 @@ { comment on table @table.ConvertedName is '@table.Description'; } - @Html.NewLine() + @NewLine() @foreach (var col in table.Columns) { - @if (!String.IsNullOrEmpty(col.Description)) + if (!String.IsNullOrEmpty(col.Description)) { comment on column @($"{table.ConvertedName}.{col.ConvertedName}") is '@col.Description'; } - @Html.NewLine() + @NewLine() } } diff --git a/src/SmartCode.Generator/RazorTemplates/TypeScript/Copyright.cshtml b/src/SmartCode.Generator/RazorTemplates/TypeScript/Copyright.cshtml index bc98341..fd9b4df 100644 --- a/src/SmartCode.Generator/RazorTemplates/TypeScript/Copyright.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/TypeScript/Copyright.cshtml @@ -1,5 +1,6 @@ @using SmartCode -@model BuildContext +@using System; +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate @{ var project = Model.Project; } diff --git a/src/SmartCode.Generator/RazorTemplates/TypeScript/Model.cshtml b/src/SmartCode.Generator/RazorTemplates/TypeScript/Model.cshtml index 8977d25..aa58055 100644 --- a/src/SmartCode.Generator/RazorTemplates/TypeScript/Model.cshtml +++ b/src/SmartCode.Generator/RazorTemplates/TypeScript/Model.cshtml @@ -2,19 +2,21 @@ @using SmartCode @using SmartCode.Db @using SmartCode.Generator.Entity; -@model BuildContext +@inherits SmartCode.TemplateEngine.Impl.RazorCoreTemplate + @{ - Layout = "_Layout.cshtml"; var project = Model.Project; var task = Model.Build; var table = Model.GetCurrentTable(); } @functions { } +@Include("Copyright.cshtml", Model) + /** interface for @table.GetSummary() */ export interface @(table.ConvertedName) { @foreach (var col in table.Columns) { - @($"{Html.PadLeft(4)}/** {col.GetSummary()} */{Html.NewLine()}") - @($"{Html.PadLeft(4)}{col.ConvertedName}: {col.LanguageType};{Html.NewLine()}") + @($"{PadLeft(4)}/** {col.GetSummary()} */{NewLine()}") + @($"{PadLeft(4)}{col.ConvertedName}: {col.LanguageType};{NewLine()}") } } diff --git a/src/SmartCode.Generator/RazorTemplates/TypeScript/_Layout.cshtml b/src/SmartCode.Generator/RazorTemplates/TypeScript/_Layout.cshtml deleted file mode 100644 index 6b5ed08..0000000 --- a/src/SmartCode.Generator/RazorTemplates/TypeScript/_Layout.cshtml +++ /dev/null @@ -1,4 +0,0 @@ -@using SmartCode -@model BuildContext -@{ Html.RenderPartial("Copyright.cshtml", Model); } -@RenderBody() diff --git a/src/SmartCode.Generator/SmartCode.Generator.csproj b/src/SmartCode.Generator/SmartCode.Generator.csproj index f737ffc..0d0a0d7 100644 --- a/src/SmartCode.Generator/SmartCode.Generator.csproj +++ b/src/SmartCode.Generator/SmartCode.Generator.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + net6.0 @@ -20,9 +20,6 @@ PreserveNewest - - PreserveNewest - diff --git a/src/SmartCode.TemplateEngine/Impl/HandlebarsTemplateEngine.cs b/src/SmartCode.TemplateEngine/Impl/HandlebarsTemplateEngine.cs deleted file mode 100644 index e460772..0000000 --- a/src/SmartCode.TemplateEngine/Impl/HandlebarsTemplateEngine.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using HandlebarsDotNet; -using Microsoft.Extensions.Logging; -using SmartCode.Configuration; -using SmartCode.Utilities; - -namespace SmartCode.TemplateEngine.Impl -{ - public class HandlebarsTemplateEngine : ITemplateEngine - { - private readonly Project _project; - private readonly ILogger _logger; - private IDictionary> _cahcedTemplate = new Dictionary>(); - public bool Initialized { get; private set; } - public string Name { get; private set; } = "Handlebars"; - private string _root = AppPath.Relative("HandlebarsTemplates"); - public HandlebarsTemplateEngine(Project project - , ILogger logger - ) - { - _project = project; - _logger = logger; - } - - private Func CompileTemplate(string templatePath) - { - var templateFullPath = Path.Combine(_root, templatePath); - _logger.LogInformation($"------ HandlebarsTemplateEngine CompileTemplate:{templateFullPath} Start! ------"); - using (var streamReader = File.OpenText(templateFullPath)) - { - var templateContent = streamReader.ReadToEnd(); - var template = Handlebars.Compile(templateContent); - _logger.LogInformation($"------ HandlebarsTemplateEngine CompileTemplate:{templateFullPath} End! ------"); - return template; - } - } - private Func GetTemplate(string templatePath) - { - if (!_cahcedTemplate.ContainsKey(templatePath)) - { - _cahcedTemplate[templatePath] = CompileTemplate(templatePath); - } - return _cahcedTemplate[templatePath]; - } - - public Task Render(BuildContext context) - { - _logger.LogDebug($"------ Render Build:{context.BuildKey} Start! ------"); - var template = GetTemplate(context.Build.TemplateEngine.FullPath); - context.Result = template(context); - _logger.LogDebug($"------ Render Build:{context.BuildKey} End! ------"); - return Task.FromResult(context.Result); - } - - public void Initialize(IDictionary parameters) - { - if (parameters == null) { return; } - if (parameters.Value("Name", out string name)) - { - Name = name; - } - if (parameters.Value("Root", out string root)) - { - _root = root; - } - Initialized = true; - } - - } -} diff --git a/src/SmartCode.TemplateEngine/Impl/OfficialRazorTemplateEngine.cs b/src/SmartCode.TemplateEngine/Impl/OfficialRazorTemplateEngine.cs deleted file mode 100644 index 65803a3..0000000 --- a/src/SmartCode.TemplateEngine/Impl/OfficialRazorTemplateEngine.cs +++ /dev/null @@ -1,107 +0,0 @@ -//******************************* -// Thx https://github.com/aspnet/Entropy/tree/master/samples/Mvc.RenderViewToString -//******************************* - -using System; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Hosting.Internal; -using Microsoft.AspNetCore.Mvc.Razor; -using Microsoft.AspNetCore.Razor.TagHelpers; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.FileProviders; -using Microsoft.Extensions.ObjectPool; -using SmartCode.Utilities; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Reflection; -using System.Text.Encodings.Web; -using System.Threading.Tasks; -using Microsoft.Extensions.FileProviders.Physical; - -namespace SmartCode.TemplateEngine.Impl -{ - public class OfficialRazorTemplateEngine : ITemplateEngine - { - private const string TEMP = ".temp"; - public bool Initialized { get; private set; } - public string Name { get; private set; } = "Razor"; - private string _root = AppPath.Relative("RazorTemplates"); - private string _temp; - private IServiceScopeFactory _scopeFactory; - public void Initialize(IDictionary parameters) - { - Initialized = true; - if (parameters != null) - { - if (parameters.Value("Name", out string name)) - { - Name = name; - } - if (parameters.Value("Root", out string root)) - { - _root = root; - } - } - _temp = Path.Combine(_root, TEMP); - if (!Directory.Exists(_temp)) - { - Directory.CreateDirectory(_temp); - } - InitializeServices(); - } - - public async Task Render(BuildContext context) - { - using (var serviceScope = _scopeFactory.CreateScope()) - { - var helper = serviceScope.ServiceProvider.GetRequiredService(); - var viewPath = context.Build.TemplateEngine.FullPath; - if (Path.IsPathRooted(viewPath)) - { - var tempFileName = $"{Path.GetFileNameWithoutExtension(viewPath)}-{Guid.NewGuid():N}{Path.GetExtension(viewPath)}"; - var destFileName = Path.Combine(_temp, tempFileName); - File.Copy(context.Build.TemplateEngine.FullPath, destFileName); - viewPath = Path.Combine(TEMP, tempFileName); - var result = await helper.RenderViewToStringAsync(viewPath, context); - File.Delete(destFileName); - return result; - } - else - { - return await helper.RenderViewToStringAsync(viewPath, context); - } - } - } - - private void InitializeServices() - { - var services = ConfigureDefaultServices(); - var serviceProvider = services.BuildServiceProvider(); - _scopeFactory = serviceProvider.GetRequiredService(); - } - private IServiceCollection ConfigureDefaultServices() - { - var services = new ServiceCollection(); - IFileProvider fileProvider = new PhysicalFileProvider(_root, ExclusionFilters.None); - services.AddSingleton(new HostingEnvironment - { - ApplicationName = Assembly.GetEntryAssembly().GetName().Name, - WebRootFileProvider = fileProvider, - }); - services.AddSingleton(NullHtmlEncoder.Default); - services.Configure(options => - { - options.FileProviders.Clear(); - options.FileProviders.Add(fileProvider); - }); - var diagnosticSource = new DiagnosticListener("Microsoft.AspNetCore"); - services.AddSingleton(); - services.AddSingleton(diagnosticSource); - services.AddLogging(); - services.AddMvc(); - services.AddTransient(); - return services; - } - } -} diff --git a/src/SmartCode.TemplateEngine/Impl/OfficialRazorViewToStringRenderer.cs b/src/SmartCode.TemplateEngine/Impl/OfficialRazorViewToStringRenderer.cs deleted file mode 100644 index 37899e0..0000000 --- a/src/SmartCode.TemplateEngine/Impl/OfficialRazorViewToStringRenderer.cs +++ /dev/null @@ -1,94 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Abstractions; -using Microsoft.AspNetCore.Mvc.ModelBinding; -using Microsoft.AspNetCore.Mvc.Razor; -using Microsoft.AspNetCore.Mvc.Rendering; -using Microsoft.AspNetCore.Mvc.ViewEngines; -using Microsoft.AspNetCore.Mvc.ViewFeatures; -using Microsoft.AspNetCore.Routing; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace SmartCode.TemplateEngine.Impl -{ - public class OfficialRazorViewToStringRenderer - { - private IRazorViewEngine _viewEngine; - private ITempDataProvider _tempDataProvider; - private IServiceProvider _serviceProvider; - - public OfficialRazorViewToStringRenderer( - IRazorViewEngine viewEngine, - ITempDataProvider tempDataProvider, - IServiceProvider serviceProvider) - { - _viewEngine = viewEngine; - _tempDataProvider = tempDataProvider; - _serviceProvider = serviceProvider; - } - - public async Task RenderViewToStringAsync(string viewName, TModel model) - { - var actionContext = GetActionContext(); - var view = FindView(actionContext, viewName); - - using (var output = new StringWriter()) - { - var viewContext = new ViewContext( - actionContext, - view, - new ViewDataDictionary( - metadataProvider: new EmptyModelMetadataProvider(), - modelState: new ModelStateDictionary()) - { - Model = model - }, - new TempDataDictionary( - actionContext.HttpContext, - _tempDataProvider), - output, - new HtmlHelperOptions()); - - await view.RenderAsync(viewContext); - - return output.ToString(); - } - } - - private IView FindView(ActionContext actionContext, string viewName) - { - var getViewResult = _viewEngine.GetView(executingFilePath: null, viewPath: viewName, isMainPage: true); - if (getViewResult.Success) - { - return getViewResult.View; - } - - var findViewResult = _viewEngine.FindView(actionContext, viewName, isMainPage: true); - if (findViewResult.Success) - { - return findViewResult.View; - } - - var searchedLocations = getViewResult.SearchedLocations.Concat(findViewResult.SearchedLocations); - var errorMessage = string.Join( - Environment.NewLine, - new[] { $"Unable to find view '{viewName}'. The following locations were searched:" }.Concat(searchedLocations)); ; - - throw new InvalidOperationException(errorMessage); - } - - private ActionContext GetActionContext() - { - var httpContext = new DefaultHttpContext - { - RequestServices = _serviceProvider - }; - return new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); - } - } -} diff --git a/src/SmartCode.TemplateEngine/Impl/RazorCoreHelper.cs b/src/SmartCode.TemplateEngine/Impl/RazorCoreHelper.cs new file mode 100644 index 0000000..590efe1 --- /dev/null +++ b/src/SmartCode.TemplateEngine/Impl/RazorCoreHelper.cs @@ -0,0 +1,55 @@ +using System.IO; +using System.Threading.Tasks; +using RazorEngineCore; + +namespace SmartCode.TemplateEngine.Impl { + + public static class RazorCoreHelper { + + private static IRazorEngine engine; + + public static void Initialize() { + engine = new RazorEngine(); + } + + public static Task CompileAndRunAsync( + string viewPath, + BuildContext context + ) { + if (!File.Exists(viewPath)) { + throw new FileNotFoundException($"Razor file {viewPath} does not exists!"); + } + System.Console.WriteLine($"Compile and run file: {viewPath}"); + var template = engine.Compile>( + File.ReadAllText(viewPath), + builder => { + builder.AddAssemblyReferenceByName("System.Data.Common"); + builder.AddAssemblyReferenceByName("System.Text.RegularExpressions"); + builder.AddAssemblyReferenceByName("MySql.Data"); + builder.AddAssemblyReferenceByName("Npgsql"); + builder.AddAssemblyReferenceByName("SmartCode"); + builder.AddAssemblyReferenceByName("SmartCode.App"); + builder.AddAssemblyReferenceByName("SmartCode.Db"); + builder.AddAssemblyReferenceByName("SmartCode.ETL"); + builder.AddAssemblyReferenceByName("SmartCode.Generator"); + builder.AddAssemblyReferenceByName("SmartCode.TemplateEngine"); + builder.AddAssemblyReferenceByName("SmartSql"); + } + ); + return template.RunAsync(instance => { + instance.ViewPath = viewPath; + instance.Model = context; + }); + } + + public static string CompileAndRun( + string viewPath, + BuildContext context + ) { + var task = CompileAndRunAsync(viewPath, context); + task.Wait(); + return task.Result; + } + } + +} diff --git a/src/SmartCode.TemplateEngine/Impl/RazorCoreTemplate.cs b/src/SmartCode.TemplateEngine/Impl/RazorCoreTemplate.cs new file mode 100644 index 0000000..d9b9ee7 --- /dev/null +++ b/src/SmartCode.TemplateEngine/Impl/RazorCoreTemplate.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using RazorEngineCore; + +namespace SmartCode.TemplateEngine.Impl { + + public class RazorCoreTemplate : RazorEngineTemplateBase { + + public string ViewPath { get; set; } + + public string Include(string subview, BuildContext context) { + var viewDirectory = Path.GetDirectoryName(ViewPath); + var subviewPath = Path.Combine(viewDirectory, subview); + return RazorCoreHelper.CompileAndRun(subviewPath, context); + } + + public string NewLine() { + return Environment.NewLine; + } + + public String NewLine(string appendStr) { + return Environment.NewLine + appendStr; + } + + public String PadLeft(int totalWidth) { + return String.Empty.PadLeft(totalWidth); + } + public String PadRight(int totalWidth) { + return String.Empty.PadRight(totalWidth); + } + + } + +} diff --git a/src/SmartCode.TemplateEngine/Impl/RazorCoreTemplateEngine.cs b/src/SmartCode.TemplateEngine/Impl/RazorCoreTemplateEngine.cs new file mode 100644 index 0000000..75f5d0f --- /dev/null +++ b/src/SmartCode.TemplateEngine/Impl/RazorCoreTemplateEngine.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using SmartCode.Utilities; + +namespace SmartCode.TemplateEngine.Impl { + + public class RazorCoreTemplateEngine : ITemplateEngine { + + public bool Initialized { get; private set; } + public string Name { get; private set; } = "RazorCore"; + + private string _root = AppPath.Relative("RazorTemplates"); + + public void Initialize(IDictionary parameters) { + if (parameters != null) { + if (parameters.Value("Name", out string name)) + { + Name = name; + } + if (parameters.Value("Root", out string root)) + { + _root = root; + } + } + RazorCoreHelper.Initialize(); + Initialized = true; + } + + public Task Render(BuildContext context) { + var viewPath = Path.Combine(_root, context.Build.TemplateEngine.FullPath); + return RazorCoreHelper.CompileAndRunAsync(viewPath, context); + } + + } + +} diff --git a/src/SmartCode.TemplateEngine/OfficialRazorExtensions.cs b/src/SmartCode.TemplateEngine/OfficialRazorExtensions.cs deleted file mode 100644 index 6aefc9d..0000000 --- a/src/SmartCode.TemplateEngine/OfficialRazorExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.AspNetCore.Html; -using Microsoft.AspNetCore.Mvc.Rendering; -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.AspNetCore.Mvc.Rendering -{ - public static class OfficialRazorExtensions - { - public static String NewLine(this IHtmlHelper htmlHelper) - { - return Environment.NewLine; - } - public static String NewLine(this IHtmlHelper htmlHelper, string appendStr) - { - return Environment.NewLine + appendStr; - } - - public static String PadLeft(this IHtmlHelper htmlHelper, int totalWidth) - { - return String.Empty.PadLeft(totalWidth); - } - public static String PadRight(this IHtmlHelper htmlHelper, int totalWidth) - { - return String.Empty.PadRight(totalWidth); - } - } -} diff --git a/src/SmartCode.TemplateEngine/SmartCode.TemplateEngine.csproj b/src/SmartCode.TemplateEngine/SmartCode.TemplateEngine.csproj index 5d4671a..a0e75db 100644 --- a/src/SmartCode.TemplateEngine/SmartCode.TemplateEngine.csproj +++ b/src/SmartCode.TemplateEngine/SmartCode.TemplateEngine.csproj @@ -1,12 +1,10 @@  - netstandard2.0 + net6.0 - - - + diff --git a/src/SmartCode.Tests/SmartCode.Tests.csproj b/src/SmartCode.Tests/SmartCode.Tests.csproj index 54c0bb6..816d93f 100644 --- a/src/SmartCode.Tests/SmartCode.Tests.csproj +++ b/src/SmartCode.Tests/SmartCode.Tests.csproj @@ -1,15 +1,15 @@  - netcoreapp2.2 + net6.0 false - + - + all runtime; build; native; contentfiles; analyzers diff --git a/src/SmartCode/SmartCode.csproj b/src/SmartCode/SmartCode.csproj index b083a2d..caa7b8d 100644 --- a/src/SmartCode/SmartCode.csproj +++ b/src/SmartCode/SmartCode.csproj @@ -1,16 +1,16 @@  - netstandard2.0 + net6.0 true SmartCode - - - - + + + +