private void GenGetList(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + "public IList<" + this.ModelName + "> GetList(SearchConditionBuilder builder)"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "return " + this.DALName + ".GetList(builder);"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
public string NewTypeToCs(string name, string suffix) { if (ContainsKey(name)) { string cs = this[name].Name; if (cs.ToLower() == name.ToLower()) { // this type is already defined as a primitive Console.Error.WriteLine("Warning: type \"{0}\" already defined as a primitive", name); return(NewTypeToCs(name + "_fake")); } else { return(this[name].Type.CSName); } } else { XType type = new XType { Name = name, CSName = GeneratorUtil.ToCs(name) + suffix, }; if (suffix == "Id") { type.Type = this["uint"]; } this[type.Name] = type; return(type.CSName); } }
static void Main(string[] args) { const string source = @" let id = Guid Id; Security (id, string path) let security = Security Security; let name = string Name; let rank = int Rank; let parent = Guid ParentId; DeleteContext ?(id) ContextDeleted !(id) CreateContext ?(id, name, rank) ContextCreated !(id, name, rank)"; var generator = new TemplatedGenerator() { }; Console.WriteLine(GeneratorUtil.Build(source, generator)); Console.ReadLine(); }
public static void GenConvertToModel(StringBuilder builder, ModelType Model) { string ModelName = Model.Name.Value; builder.AppendLine(GeneratorUtil.TabString(1) + @"public static " + ModelName + " " + GetConvertName(Model.Name.Value) + "(DataRow row )"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + ModelName + " info = new " + ModelName + "();"); foreach (FieldType field in Model.MyFields) { string systemType = field.SystemType.Value; string fieldName = field.Name.Value; string columnName = field.ColumnName.Value; builder.AppendLine(GeneratorUtil.TabString(2) + "if ( row[\"" + columnName + "\"] == DBNull.Value)"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); if (!field.NullAble.Value) { builder.AppendLine(GeneratorUtil.TabString(3) + "info." + fieldName + " = default(" + systemType + ");"); } builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "else"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "info." + fieldName + " = (" + systemType + ")row[\"" + columnName + "\"];"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); } builder.AppendLine(GeneratorUtil.TabString(2) + "return info;"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void WriteAssignments(Contract contract, IndentedTextWriter writer) { foreach (Member member in contract.Members) { writer.WriteLine("{0} = {1};", member.Name, GeneratorUtil.ParameterCase(member.Name)); } }
private void GenUpdate(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + @"public bool Update(" + this.ModelName + " " + this.ParaModelName + ")"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "return " + this.DALName + ".Update(" + this.ParaModelName + ");"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void GenGetOne(StringBuilder builder) { List <ColumnType> pks = SqlGenTableDAL.GetPKColumn(this.table.ColumnSet); builder.Append(GeneratorUtil.TabString(1) + "public " + this.ModelName + " Get" + this.ModelName + "("); for (int i = 0; i < pks.Count; i++) { builder.Append(pks[i].SystemType.Value + " " + pks[i].Name.Value); if (i < pks.Count - 1) { builder.Append(","); } } builder.AppendLine(")"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.Append(GeneratorUtil.TabString(2) + "return " + this.DALName + ".Get" + this.ModelName + "("); for (int i = 0; i < pks.Count; i++) { builder.Append(pks[i].Name.Value); if (i < pks.Count - 1) { builder.Append(","); } } builder.AppendLine(");"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void CreateNHibernate_Model_Click(object sender, EventArgs args) { var builder = new StringBuilder(); builder.AppendFormat(GeneratorUtil.TabString(0) + "public class {0}", GetStandardName(this.Name)); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(0) + "{"); foreach (var col in this._columnSetNode.Columns) { builder.AppendFormat(GeneratorUtil.TabString(1) + "private {0}{1} _{2};", col.SystemType, AllowDBNull(col) ? "?" : "", GetStandardName(col.Name)); builder.AppendLine(); } builder.AppendLine(); foreach (var col in this._columnSetNode.Columns) { builder.AppendFormat(GeneratorUtil.TabString(1) + "public virtual {0}{1} {2}", col.SystemType, AllowDBNull(col) ? "?" : "", GetStandardName(col.Name)); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendFormat(GeneratorUtil.TabString(2) + "get"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendFormat(GeneratorUtil.TabString(3) + "return _{0};", GetStandardName(col.Name)); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "set"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendFormat(GeneratorUtil.TabString(3) + "_{0}=value;", GetStandardName(col.Name)); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); } builder.AppendLine(GeneratorUtil.TabString(0) + "}"); this.OnGenerate(this, builder); }
private void GenGetPageList(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + "public IList<" + this.ModelName + "> GetPageList(int pageSize, int pageIndex, out int recordCount, SearchConditionBuilder builder)"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "return " + this.DALName + ".GetPageList( pageSize, pageIndex, out recordCount, builder);"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void GenUpdate(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + @"public bool Update(" + this.ModelName + " " + this.ParaModelName + ")"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "string sql = @\"UPDATE " + this.TableName); builder.AppendLine(GeneratorUtil.TabString(2) + "SET"); for (int i = 0; i < this.table.ColumnSet.ColumnCount; i++) { ColumnType column = this.ColumnSet.GetColumnAt(i); if (!column.IsPK.Value) { var columnName = this.table.ColumnSet.GetColumnAt(i).Name.Value; builder.Append(GeneratorUtil.TabString(2) + columnName + " = @" + columnName); if (i < this.table.ColumnSet.ColumnCount - 1) { builder.Append(","); } builder.AppendLine(); } } builder.AppendLine(GeneratorUtil.TabString(2) + "WHERE "); builder.Append(GeneratorUtil.TabString(2)); List <ColumnType> PKCols = GetPKColumn(this.ColumnSet); for (int index = 0; index < PKCols.Count; index++) { ColumnType pkCol = PKCols[index]; builder.Append(pkCol.Name + " = @" + pkCol.Name.Value); if (index < PKCols.Count - 1) { builder.Append(" and "); } } builder.AppendLine("\";"); builder.AppendLine(GeneratorUtil.TabString(2) + "SqlParameter[] sqlParams = "); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); //for (int i = 0; i < this.table.ColumnSet.ColumnCount; i++) //{ for (int i = 0; i < this.Model.FieldCount; i++) { FieldType field = this.Model.GetFieldAt(i); if (!string.IsNullOrWhiteSpace(field.ColumnName.Value)) { builder.Append(GeneratorUtil.TabString(3) + "new SqlParameter(\"@" + field.ColumnName.Value + "\"," + this.ParaModelName + "." + field.Name.Value + ")"); if (i < this.ColumnSet.ColumnCount - 1) { builder.Append(","); } builder.AppendLine(); } } builder.AppendLine(GeneratorUtil.TabString(2) + "};"); builder.AppendLine(GeneratorUtil.TabString(2) + "int i = SqlHelper.ExecuteNonQuery(WriteConnection, CommandType.Text, sql, sqlParams);"); builder.AppendLine(GeneratorUtil.TabString(2) + "return i == 1;"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
public override void Generate(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(0) + "public IList<" + this.returnModelName + "> " + this.Sql.Name.Value + "(" + GenSqlDALBase.GetListParameter(this.Sql) + ")"); builder.AppendLine(GeneratorUtil.TabString(0) + "{"); builder.AppendLine(GeneratorUtil.TabString(1) + "return this.dal." + this.Sql.Name.Value + "(" + GetParamterList(this.Sql) + ");"); builder.AppendLine(GeneratorUtil.TabString(0) + "}"); base.Generate(builder); }
private void GenInsert(StringBuilder builder) { string paraModel = this.table.Model.Name.Value; builder.AppendLine(GeneratorUtil.TabString(1) + "public void Insert(" + this.table.Model.Name.Value + " " + this.ParaModelName + ")"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + this.DALName + ".Insert(" + this.ParaModelName + ");"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
public string TypeToCs(string name) { if (ContainsKey(name)) { return(this[name].CSName); } Console.Error.WriteLine("Warning: typeMap doesn't contain " + name); return(GeneratorUtil.ToCs(name)); }
private void GenGetPageList(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + "public IList<" + this.ModelName + "> GetPageList(int pageSize, int pageIndex, out int recordCount, SearchConditionBuilder builder)"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "int startIndex = (pageIndex-1) * pageSize + 1;"); builder.AppendLine(GeneratorUtil.TabString(2) + "int endIndex = pageIndex * pageSize;"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "string condition = string.Empty;"); builder.AppendLine(GeneratorUtil.TabString(2) + "string order = string.Empty;"); builder.AppendLine(GeneratorUtil.TabString(2) + "SqlParameter[] paramList = null;"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "if (builder != null)"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "condition = builder.SqlString;"); builder.AppendLine(GeneratorUtil.TabString(2) + "order = builder.OrderString;"); builder.AppendLine(GeneratorUtil.TabString(2) + "paramList = builder.ParamList.ToArray();"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "if (string.IsNullOrWhiteSpace(order))"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "order = \"" + this.GetDefaultOrderString() + "\";"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "StringBuilder query = new StringBuilder();"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"SELECT * \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"FROM \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"( \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\" SELECT ROW_NUMBER() OVER(ORDER BY {0} ) SN,* \", order);"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\" FROM " + this.TableName + "(NOLOCK) \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "if (!string.IsNullOrWhiteSpace(condition))"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "query.AppendFormat(\" WHERE {0} \", condition);"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\") T \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"WHERE T.SN BETWEEN {0} AND {1};\", startIndex, endIndex);"); builder.AppendLine(GeneratorUtil.TabString(2) + "//获取记录条数"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"SELECT COUNT(1) FROM " + this.TableName + "(NOLOCK) \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "if (!string.IsNullOrWhiteSpace(condition))"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "query.AppendFormat(\" WHERE {0} \", condition);"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "DataSet ds = SqlHelper.ExecuteDataset("); builder.AppendLine(GeneratorUtil.TabString(2) + "ReadConnection, CommandType.Text, query.ToString(), paramList);"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "recordCount = Convert.ToInt32(ds.Tables[1].Rows[0][0]);"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "IList<" + this.ModelName + "> list = new List<" + this.ModelName + ">();"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "foreach (DataRow row in ds.Tables[0].Rows)"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "list.Add(" + GetConvertName(this.ModelName) + "(row));"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "return list;"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void GenGetOne(StringBuilder builder) { List <ColumnType> pks = GetPKColumn(this.ColumnSet); builder.Append(GeneratorUtil.TabString(1) + "public " + this.ModelName + " Get" + this.ModelName + "("); for (int i = 0; i < pks.Count; i++) { builder.Append(pks[i].SystemType.Value + " " + pks[i].Name.Value); if (i < pks.Count - 1) { builder.Append(","); } } builder.AppendLine(")"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.Append(GeneratorUtil.TabString(2) + "string sql=@\"SELECT * FROM " + this.TableName + "(NOLOCK) WHERE "); for (int i = 0; i < pks.Count; i++) { string pkName = pks[i].Name.Value; builder.Append(pkName + "= @" + pkName); if (i < pks.Count - 1) { builder.Append(","); } } builder.AppendLine("\";"); builder.AppendLine(GeneratorUtil.TabString(2) + "SqlParameter[] sqlParams = "); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); for (int i = 0; i < pks.Count; i++) { string pkName = pks[i].Name.Value; builder.Append(GeneratorUtil.TabString(3) + "new SqlParameter(\"@" + pkName + "\"," + pkName + ")"); if (i < pks.Count - 1) { builder.Append(","); } builder.AppendLine(); } builder.AppendLine(GeneratorUtil.TabString(2) + "};"); builder.AppendLine(GeneratorUtil.TabString(2) + @"DataSet ds = SqlHelper.ExecuteDataset(ReadConnection, CommandType.Text, sql, sqlParams);"); builder.AppendLine(GeneratorUtil.TabString(2) + "if (ds.Tables[0].Rows.Count == 1)"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "return " + GetConvertName(this.ModelName) + @"(ds.Tables[0].Rows[0]);"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "return null;"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void WriteParameters(Contract contract, IndentedTextWriter writer) { bool first = true; foreach (Member member in contract.Members) { if (first) { first = false; } else { writer.Write(", "); } writer.Write("{0} {1}", member.Type, GeneratorUtil.ParameterCase(member.Name)); } }
private void GenConnection(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + @"/// <summary>"); builder.AppendLine(GeneratorUtil.TabString(1) + "/// 只读数据库连接"); builder.AppendLine(GeneratorUtil.TabString(1) + "/// </summary>"); builder.AppendLine(GeneratorUtil.TabString(1) + @"private static string ReadConnection"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "get { return \"" + this.ConnectionString + "\"; }"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(1) + @"/// <summary>"); builder.AppendLine(GeneratorUtil.TabString(1) + "/// 可写数据库连接"); builder.AppendLine(GeneratorUtil.TabString(1) + "/// </summary>"); builder.AppendLine(GeneratorUtil.TabString(1) + "private static string WriteConnection"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "get { return \"" + this.ConnectionString + "\"; }"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
private void WriteAssignments(Contract contract, IndentedTextWriter writer) { bool first = true; foreach (Member member in contract.Members) { string name = member.Name; if (first && member.Type.EndsWith("Id", StringComparison.InvariantCultureIgnoreCase)) { name = "Id"; } first = false; writer.WriteLine("{0} = {1};", name, GeneratorUtil.ParameterCase(member.Name)); } }
public override void Generate(StringBuilder builder) { builder.AppendLine( @" using System; using System.Collections.Generic; using System.Linq; using System.Text; using Company.ZCH49.OASystem.Data; using Company.ZCH49.OASystem.Data.Repository; namespace AAA { "); var entityName = GeneratorUtil.ClassName(this.Model.Name); builder.AppendLine(string.Format( "\tpublic class " + this.Model.Name + "Repository: Repository<{0}>, I{0}Repository", this.Model.Name)); builder.AppendLine("\t{"); builder.AppendLine(string.Format( "\t\tpublic {0}Repository(IQueryableUnitOfWork unitOfWork)", this.Model.Name)); builder.AppendLine(string.Format("\t\t\t:base(unitOfWork)")); builder.AppendLine("\t\t{"); builder.AppendLine("\t\t}"); builder.AppendLine(); builder.AppendLine(string.Format("\t\tpublic List<{0}> GetList( List<Guid> id_list )", entityName)); builder.AppendLine("\t\t{"); builder.AppendLine(string.Format("\t\t\treturn this.GetAll({0}Specification.GetList(id_list)).ToList();", entityName)); builder.AppendLine("\t\t}"); builder.AppendLine(); builder.AppendLine("\t\tpublic void Dispose()"); builder.AppendLine("\t\t{"); builder.AppendLine("\t\t\t//throw new NotImplementedException();"); builder.AppendLine("\t\t}"); builder.AppendLine("\t}"); builder.Append("}"); base.Generate(builder); }
private void GenDelete(StringBuilder builder) { List <ColumnType> pks = GetPKColumn(this.ColumnSet); builder.Append(GeneratorUtil.TabString(1) + @"public bool Delete("); for (int i = 0; i < pks.Count; i++) { builder.Append(pks[i].SystemType.Value + " " + pks[i].Name.Value); if (i < pks.Count - 1) { builder.Append(","); } } builder.AppendLine(")"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.Append(GeneratorUtil.TabString(2) + "string sql = \"DELETE FROM " + this.TableName + " WHERE "); for (int i = 0; i < pks.Count; i++) { builder.Append(pks[i].Name.Value + " = @" + pks[i].Name.Value); if (i < pks.Count - 1) { builder.Append(","); } } builder.AppendLine("\";"); builder.AppendLine(GeneratorUtil.TabString(2) + "SqlParameter[] sqlParams = "); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); for (int i = 0; i < pks.Count; i++) { string pkName = pks[i].Name.Value; builder.Append(GeneratorUtil.TabString(3) + "new SqlParameter(\"@" + pkName + "\"," + pkName + ")"); if (i < pks.Count - 1) { builder.Append(","); } builder.AppendLine(); } builder.AppendLine(GeneratorUtil.TabString(2) + "};"); builder.AppendLine(GeneratorUtil.TabString(2) + "int i = SqlHelper.ExecuteNonQuery(WriteConnection, CommandType.Text, sql, sqlParams);"); builder.AppendLine(GeneratorUtil.TabString(2) + "return i ==1;"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
//public class MyStringTemplateErrorListener : IStringTemplateErrorListener //{ // public void Error(string msg, Exception e) // { // //throw new NotImplementedException(); // } // public void Warning(string msg) // { // //throw new NotImplementedException(); // } //} public override void Generate(StringBuilder builder) { if (db == null || db.Elements == null || db.Elements.Count == 0) return; builder.AppendLine(@"using System; using System.Collections.Generic; using System.Linq; using System.Text; using CodeHelper.Xml.Core.Nodes; using System.Xml;"); var builderUtil = new GeneratorUtil(builder, 0); builderUtil.AppendLine(); foreach (var el in db.Elements) { Build(el, builderUtil); builderUtil.AppendLine(); } }
public void Test() { var generator = new TemplatedGenerator() { Namespace = "Mine" }; var dsl = @" let name = string Name; let security = SecurityDetails Security; let auth = SecurityRequest Request; entity ProjectAggregate (Guid ProjectId); using ? = CommandTo<ProjectId>; using ! = EventFrom<ProjectId>; // projects CreateProject? (name, int Rank, auth) ProjectCreated! (name, int Rank, security) RenameProject? (name, auth) ProjectRenamed! (name, security) DeleteProject? (auth) ProjectDeleted! (ref DeleteProject) entity null (); DoSomething (name) "; var ctx = GeneratorUtil.GenerateContext(dsl); Console.WriteLine(GeneratorUtil.Build(ctx, generator)); }
private void GenGetList(StringBuilder builder) { builder.AppendLine(GeneratorUtil.TabString(1) + "public IList<" + this.ModelName + "> GetList(SearchConditionBuilder builder)"); builder.AppendLine(GeneratorUtil.TabString(1) + "{"); builder.AppendLine(GeneratorUtil.TabString(2) + "string condition = string.Empty;"); builder.AppendLine(GeneratorUtil.TabString(2) + "string order = string.Empty;"); builder.AppendLine(GeneratorUtil.TabString(2) + "SqlParameter[] paramList = null;"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "if (builder != null)"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "condition = builder.SqlString;"); builder.AppendLine(GeneratorUtil.TabString(3) + "order = builder.OrderString;"); builder.AppendLine(GeneratorUtil.TabString(3) + "paramList = builder.ParamList.ToArray();"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "StringBuilder query = new StringBuilder();"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"SELECT * \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "query.AppendFormat(\"FROM " + this.TableName + "(NOLOCK) \");"); builder.AppendLine(GeneratorUtil.TabString(2) + "if (!string.IsNullOrWhiteSpace(condition))"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "query.AppendFormat(\" WHERE {0} \", condition);"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(); builder.AppendLine(GeneratorUtil.TabString(2) + "if (!string.IsNullOrWhiteSpace(order))"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "query.AppendFormat(\" ORDER BY {0} \", order);"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "DataSet ds = SqlHelper.ExecuteDataset("); builder.AppendLine(GeneratorUtil.TabString(2) + "ReadConnection, CommandType.Text, query.ToString(), paramList);"); builder.AppendLine(GeneratorUtil.TabString(2) + "List<" + this.ModelName + "> list = new List<" + this.ModelName + ">();"); builder.AppendLine(GeneratorUtil.TabString(2) + "foreach (DataRow row in ds.Tables[0].Rows)"); builder.AppendLine(GeneratorUtil.TabString(2) + "{"); builder.AppendLine(GeneratorUtil.TabString(3) + "list.Add(" + GetConvertName(this.ModelName) + "(row));"); builder.AppendLine(GeneratorUtil.TabString(2) + "}"); builder.AppendLine(GeneratorUtil.TabString(2) + "return list;"); //builder.AppendLine(GeneratorUtil.TabString(2) + ");"); builder.AppendLine(GeneratorUtil.TabString(1) + "}"); }
//public class MyStringTemplateErrorListener : IStringTemplateErrorListener //{ // public void Error(string msg, Exception e) // { // //throw new NotImplementedException(); // } // public void Warning(string msg) // { // //throw new NotImplementedException(); // } //} public override void Generate(StringBuilder builder) { if (db == null || db.Elements == null || db.Elements.Count == 0) { return; } builder.AppendLine(@"using System; using System.Collections.Generic; using System.Linq; using System.Text; using CodeHelper.Xml.Core.Nodes; using System.Xml;"); var builderUtil = new GeneratorUtil(builder, 0); builderUtil.AppendLine(); foreach (var el in db.Elements) { Build(el, builderUtil); builderUtil.AppendLine(); } }
private void Build(ElementInfo elment, GeneratorUtil builderUtil) { builderUtil.AppendFormat("public class {0} : BaseNode", elment.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("#region 属性"); foreach (var attr in elment.XmlAttributes) { builderUtil.AppendLine("public " + attr.Type + attr.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("get"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("return this.Dom.Attributes[\"" + attr.Name + "\"].ToT<" + attr.Type + ">();"); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.Entry(); builderUtil.AppendLine("set"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("this.Dom.Attributes[\"" + attr.Name + "\"] = value;"); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.AppendLine("}"); } builderUtil.AppendLine("#endregion 属性"); builderUtil.Leave(); //System.Xml.XmlNode n;n.ChildNodes[0].Name builderUtil.Entry(); builderUtil.AppendLine("#region 字段"); foreach (var field in elment.Fields) { builderUtil.AppendLine("public " + field.Type + " " + field.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("get"); builderUtil.Entry(); builderUtil.AppendLine("{"); if (field.Type.StartsWith("List<")) { } else { builderUtil.AppendFormatLine("foreach(var node in this.Dom.ChildNodes)"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("if(node.Name == \"{0}\")", field.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("return new {0}(node);", field.Name); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.AppendLine("}"); } builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.AppendLine(""); builderUtil.AppendLine("}"); } builderUtil.AppendLine("#endregion 字段"); builderUtil.Leave(); builderUtil.Entry(); builderUtil.AppendLine(string.Format("public {0}()", elment.Name)); builderUtil.AppendLine("{"); builderUtil.AppendLine("}"); builderUtil.AppendLine(string.Format("public {0}(XmlNode dom):base(dom)", elment.Name)); builderUtil.AppendLine("{"); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.AppendLine("}"); }
// Thread. DON'T use the Unity API here protected override void JobFunction() { posInArray = 0; if (!genNormals) { for (y = 0; y < mapY; y += 1) { for (x = 0; x < mapX; x += 1) { int xPos = (x * xStepSize) + startX; int yPos = (y * yStepSize) + startY; OutData[posInArray] += (float)GetHeight(xPos, yPos, mapX, mapY); posInArray++; } } } else { // generate height map data for (y = -1; y < (mapY + 1); y += 1) { for (x = -1; x < (mapX + 1); x += 1) { int xPos = (x * xStepSize) + startX; int yPos = (y * yStepSize) + startY; if (x > -1 && y > -1 && x < mapX && y < mapY) { OutData[GeneratorUtil.XYToNum(x, y, mapX)] += (float)GetHeight(xPos, yPos, mapX, mapY); posInArray++; } //UnityEngine.Debug.Log(GeneratorUtil.XYToNum((x + 1), (y + 1), (mapX + 2))); heightData[GeneratorUtil.XYToNum((x + 1), (y + 1), (mapX + 2))] += (float)GetHeight(xPos, yPos, mapX, mapY); } } // generate normal map data for (y = 0; y < mapY; y += 1) { for (x = 0; x < mapX; x += 1) { int tx = x; int ty = y; // - bottom // left tx = x - 1; ty = y - 1; //UnityEngine.Debug.Log("."+GeneratorUtil.XYToNum((x + 1), (y + 1), (mapX + 2))); s[0] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // center tx = x; s[1] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // right tx = x + 1; s[2] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // - center // left tx = x - 1; ty = y; s[3] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // center tx = x; s[4] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // right tx = x + 1; s[5] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // - top // left tx = x - 1; ty = y + 1; s[6] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // center tx = x; s[7] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; // right tx = x + 1; s[8] = heightData[GeneratorUtil.XYToNum((tx + 1), (ty + 1), (mapX + 2))]; UnityEngine.Vector3 normal; normal.x = -(s[2] - s[0] + 2 * (s[5] - s[3]) + s[8] - s[6]); normal.y = -(s[6] - s[0] + 2 * (s[7] - s[1]) + s[8] - s[2]); normal.z = 250.0f; normal.Normalize(); //normalize OutNormals[x + (y * mapX)] = new UnityEngine.Vector3(); OutNormals[x + (y * mapX)].x = normal.x; OutNormals[x + (y * mapX)].y = normal.z; OutNormals[x + (y * mapX)].z = normal.y; } } // } IsDone = true; }
private void Build(AttributeGroupInfo field, GeneratorUtil builderUtil) { }
private void Build(XmlAttributeInfo field, GeneratorUtil builderUtil) { }
private void Build(FieldGroupInfo fieldGroup, GeneratorUtil builderUtil) { }
private void Build(FieldInfo field, GeneratorUtil builderUtil) { }
private void Build(ElementInfo elment, GeneratorUtil builderUtil) { builderUtil.AppendFormat("public class {0} : BaseNode", elment.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine( "#region 属性"); foreach (var attr in elment.XmlAttributes) { builderUtil.AppendLine("public " + attr.Type + attr.Name ); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("get"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("return this.Dom.Attributes[\"" + attr.Name + "\"].ToT<" + attr.Type + ">();"); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.Entry(); builderUtil.AppendLine("set"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("this.Dom.Attributes[\"" + attr.Name + "\"] = value;"); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.AppendLine("}"); } builderUtil.AppendLine("#endregion 属性"); builderUtil.Leave(); //System.Xml.XmlNode n;n.ChildNodes[0].Name builderUtil.Entry(); builderUtil.AppendLine("#region 字段"); foreach (var field in elment.Fields) { builderUtil.AppendLine("public " + field.Type + " " + field.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("get"); builderUtil.Entry(); builderUtil.AppendLine("{"); if (field.Type.StartsWith("List<")) { } else { builderUtil.AppendFormatLine("foreach(var node in this.Dom.ChildNodes)"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("if(node.Name == \"{0}\")", field.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("return new {0}(node);", field.Name); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.AppendLine("}"); } builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.AppendLine(""); builderUtil.AppendLine("}"); } builderUtil.AppendLine("#endregion 字段"); builderUtil.Leave(); builderUtil.Entry(); builderUtil.AppendLine(string.Format("public {0}()" ,elment.Name)); builderUtil.AppendLine("{"); builderUtil.AppendLine("}"); builderUtil.AppendLine(string.Format("public {0}(XmlNode dom):base(dom)" ,elment.Name)); builderUtil.AppendLine("{"); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.AppendLine("}"); }
private void Build(ElementInfo elment, GeneratorUtil builderUtil) { builderUtil.AppendFormatLine("[ConfigurationProperty(\"{0}\")]", elment.Name); foreach (var f in elment.Fields) { if (f.IsGenricList) { builderUtil.AppendFormatLine("[ConfigurationCollection(typeof({0}ConfigCollection), AddItemName = \"{1}\")]",f.GenericArgument, f.Name); } } builderUtil.AppendFormat("public class {0} : ConfigurationSection", elment.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine( "#region properties"); foreach (var attr in elment.XmlAttributes) { builderUtil.AppendFormatLine("[ConfigurationProperty(\"{0}\")]",attr.Name); builderUtil.AppendLine("public " + attr.Type + attr.Name ); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("get"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("return this[\"" + attr.Name + "\"].ToT<" + attr.Type + ">();"); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.Entry(); builderUtil.AppendLine("set"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendLine("this[\"" + attr.Name + "\"] = value;"); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.AppendLine("}"); } builderUtil.AppendLine("#endregion properties"); builderUtil.Leave(); //System.Xml.XmlNode n;n.ChildNodes[0].Name builderUtil.Entry(); builderUtil.AppendLine("#region fields"); foreach (var field in elment.Fields) { if (field.IsGenricList) { builderUtil.AppendLine("public " + field.GenericArgument + "ConfigCollection" + field.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.Append("get{"); builderUtil.AppendFormatLine("return ({0}ConfigCollection)base[{1}];", field.GenericArgument, field.Name); builderUtil.Append("}"); builderUtil.Leave(); } else { builderUtil.AppendFormatLine("foreach(var node in this.Dom.ChildNodes)"); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("if(node.Name == \"{0}\")", field.Name); builderUtil.AppendLine("{"); builderUtil.Entry(); builderUtil.AppendFormatLine("return new {0}(node);", field.Name); builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.AppendLine("}"); } builderUtil.Leave(); builderUtil.AppendLine("}"); builderUtil.AppendLine(""); builderUtil.AppendLine("}"); } builderUtil.AppendLine("#endregion fields"); builderUtil.Leave(); builderUtil.Entry(); builderUtil.AppendLine(string.Format("public {0}()" ,elment.Name)); builderUtil.AppendLine("{"); builderUtil.AppendLine("}"); builderUtil.AppendLine(string.Format("public {0}(XmlNode dom):base(dom)" ,elment.Name)); builderUtil.AppendLine("{"); builderUtil.AppendLine("}"); builderUtil.Leave(); builderUtil.AppendLine("}"); }
public override void Generate(StringBuilder builder) { builder.AppendLine( @" using System; using System.Collections.Generic; using System.Linq; using System.Text; using Company.ZCH49.OASystem.Domain.Repository;"); builder.AppendLine(@" namespace AAA { "); builder.AppendLine(string.Format( "\tpublic interface I" + this.Model.Name + "Repository: IRepository<{0}> ,IDisposable", this.Model.Name)); builder.AppendLine("\t{"); builder.AppendLine(string.Format("\t\tList<{0}> GetList( List<Guid> id_list );", GeneratorUtil.ClassName(this.Model.Name))); builder.AppendLine("\t}"); builder.Append("}"); base.Generate(builder); }