Пример #1
0
 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) + "}");
 }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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();
        }
Пример #4
0
        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) + "}");
        }
Пример #5
0
 private void WriteAssignments(Contract contract, IndentedTextWriter writer)
 {
     foreach (Member member in contract.Members)
     {
         writer.WriteLine("{0} = {1};", member.Name, GeneratorUtil.ParameterCase(member.Name));
     }
 }
Пример #6
0
 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) + "}");
 }
Пример #7
0
        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) + "}");
        }
Пример #8
0
        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);
        }
Пример #9
0
 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) + "}");
 }
Пример #10
0
        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) + "}");
        }
Пример #11
0
 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);
 }
Пример #12
0
        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) + "}");
        }
Пример #13
0
        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));
        }
Пример #14
0
 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) + "}");
 }
Пример #15
0
        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) + "}");
        }
Пример #16
0
        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));
            }
        }
Пример #17
0
 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) + "}");
 }
Пример #18
0
        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));
            }
        }
Пример #19
0
        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);
        }
Пример #20
0
        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();
            }
        }
Пример #22
0
        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));
        }
Пример #23
0
        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();
            }
        }
Пример #25
0
        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("}");
        }
Пример #26
0
    // 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;
    }
Пример #27
0
 private void Build(AttributeGroupInfo field, GeneratorUtil builderUtil)
 {
 }
Пример #28
0
 private void Build(XmlAttributeInfo field, GeneratorUtil builderUtil)
 {
 }
Пример #29
0
 private void Build(FieldGroupInfo fieldGroup, GeneratorUtil builderUtil)
 {
 }
Пример #30
0
 private void Build(FieldInfo field, GeneratorUtil builderUtil)
 {
 }
Пример #31
0
        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("}");
        }
Пример #32
0
 private void Build(AttributeGroupInfo field, GeneratorUtil builderUtil)
 {
 }
Пример #33
0
 private void Build(XmlAttributeInfo field, GeneratorUtil builderUtil)
 {
 }
Пример #34
0
 private void Build(FieldGroupInfo fieldGroup, GeneratorUtil builderUtil)
 {
 }
Пример #35
0
 private void Build(FieldInfo field, GeneratorUtil builderUtil)
 {
 }
        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("}");
        }
Пример #37
0
        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);
        }