From 84ce9e575a5a080ede6edbac43af10ff0beb6159 Mon Sep 17 00:00:00 2001 From: "yubaolee@163.com" Date: Mon, 28 May 2018 09:56:37 +0800 Subject: [PATCH] update code generator --- CodeSmith/CSharp/Web/Application.cst | 38 +++------------------------- CodeSmith/CSharp/Web/Request.cst | 17 +++++++++++++ CodeSmith/CSharp/WebGenerate.cst | 23 ++++++++++++++++- 3 files changed, 43 insertions(+), 35 deletions(-) create mode 100644 CodeSmith/CSharp/Web/Request.cst diff --git a/CodeSmith/CSharp/Web/Application.cst b/CodeSmith/CSharp/Web/Application.cst index 632c16d1..c3634109 100644 --- a/CodeSmith/CSharp/Web/Application.cst +++ b/CodeSmith/CSharp/Web/Application.cst @@ -28,40 +28,10 @@ namespace OpenAuth.App /// public TableData Load(Query<%=ModuleName%>ListReq request) { - var loginUser = AuthUtil.GetCurrentUser(); - - string cascadeId = ".0."; - if (!string.IsNullOrEmpty(request.orgId)) + return new TableData { - var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); - cascadeId = org.CascadeId; - } - - var ids = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); - var roleIds = ReleManagerApp.Get(Define.ROLEORG, false, ids); - - var roles = UnitWork.Find<<%=ModuleName%>>(u => roleIds.Contains(u.Id)) - .OrderBy(u => u.Name) - .Skip((request.page - 1) * request.limit) - .Take(request.limit); - - var records = Repository.GetCount(u => roleIds.Contains(u.Id)); - - - var roleViews = new List<<%=ModuleName%>View>(); - foreach (var role in roles) - { - RoleView uv = role; - var orgs = LoadByRole(role.Id); - uv.Organizations = string.Join(",", orgs.Select(u => u.Name).ToList()); - uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList()); - roleViews.Add(uv); - } - - return new TableData - { - count = records, - data = roleViews, + count = Repository.GetCount(null), + data = Repository.Find(request.page, request.limit, "Id desc") }; } @@ -74,7 +44,7 @@ namespace OpenAuth.App { UnitWork.Update<<%=ModuleName%>>(u => u.Id == obj.Id, u => new <%=ModuleName%> { - //todo:要修改的 + //todo:要修改的字段赋值 }); } diff --git a/CodeSmith/CSharp/Web/Request.cst b/CodeSmith/CSharp/Web/Request.cst new file mode 100644 index 00000000..734ad9ad --- /dev/null +++ b/CodeSmith/CSharp/Web/Request.cst @@ -0,0 +1,17 @@ +<%-- +Name: Database Table Properties +Author: yubaolee +Description: Create a list of properties from a database table +--%> +<%@ CodeTemplate Language="C#" Encoding="utf-8" TargetLanguage="C#" Debug="False" Description="应用层" %> +<%@ Property Name="ModuleName" Type="String" Category="Context" Description="模块名称" %> +<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %> +<%@ Assembly Name="SchemaExplorer" %> +<%@ Import Namespace="SchemaExplorer" %> +namespace OpenAuth.App.Request +{ + public class Query<%=ModuleName%>ListReq : PageReq + { + public string orgId { get; set; } + } +} \ No newline at end of file diff --git a/CodeSmith/CSharp/WebGenerate.cst b/CodeSmith/CSharp/WebGenerate.cst index b645b963..026d7290 100644 --- a/CodeSmith/CSharp/WebGenerate.cst +++ b/CodeSmith/CSharp/WebGenerate.cst @@ -39,6 +39,9 @@ OnChanged="OnSourceDatabaseChanged"%> <%@ Register Name="ApplicationGenerateClass" Template="Web\Application.cst" MergeProperties="False" %> +<%@ Register Name="RequestGenerateClass" + Template="Web\Request.cst" + MergeProperties="False" %> <%@ Register Name="HtmlGenerateClass" Template="Web\Index.cshtml.cst" MergeProperties="False" %> @@ -59,6 +62,7 @@ Generating Entities ... CreateControllerClass(); CreateApplicationClass(); + CreateReqClass(); CreateHtmlClass(); CreateJSClass(); @@ -103,6 +107,23 @@ Generating Entities ... Response.WriteLine(generatedFile); generatedClass.RenderToFile(generatedFile, generatedFile, true); } + + + //创建请求参数,如QueryUserListReq.cs + public void CreateReqClass() + { + RequestGenerateClass generatedClass = this.Create(); + this.CopyPropertiesTo(generatedClass); + + string rootDirectory = Path.GetFullPath(directory); + + string generatedFile = Path.GetFullPath(directory) + "/APP/Request/Query"+ ModuleName + "ListReq.cs"; + + generatedClass.ModuleName = ModuleName; + + Response.WriteLine(generatedFile); + generatedClass.RenderToFile(generatedFile, generatedFile, true); + } //创建视图,如views/Users/index.html public void CreateHtmlClass() @@ -125,7 +146,7 @@ Generating Entities ... JSGenerateClass generatedClass = this.Create(); this.CopyPropertiesTo(generatedClass); - string generatedFile = Path.GetFullPath(directory) + "/userJs/"+ModuleName+"s.js"; + string generatedFile = Path.GetFullPath(directory) + "/userJs/"+ModuleName.ToLower()+"s.js"; generatedClass.ModuleName = ModuleName;