public void BuildProxies(ProxyModel model)
        {
            _ = model ?? throw new ArgumentNullException("model is required.");

            var session = new TextTemplatingSession
            {
                ["Namespace"] = Settings?.Namespace ?? "Proxy",
                ["Model"]     = model
            };

            Host host = new Host(Settings, session);

            host.Message += (sender, args) => { RaiseMessage(args.Message); };

            string input = File.ReadAllText(host.TemplateFile);

            var engine = new Mono.TextTemplating.TemplatingEngine();

            var output = engine.ProcessTemplate(input, host);

            if (host.Errors.Count > 0)
            {
                foreach (var error in host.Errors)
                {
                    RaiseMessage(error.ToString(), "", eMessageType.Error);
                }

                return;
            }

            var defaultFileName = Path.ChangeExtension(
                Path.Combine(
                    host.OutputPath,
                    Path.GetFileName(host.TemplateFile)),
                host.FileExtension);

            if (output?.Length > 0)
            {
                CreateFile(defaultFileName, output);
            }
            else if (File.Exists(defaultFileName))
            {
                RaiseMessage(string.Format("Deleting {0}.", defaultFileName), "", eMessageType.Info);
                File.Delete(defaultFileName);
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            string path  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "基础平台\\后台代码\\TextTemplate1.tt");
            string input = File.ReadAllText(path, Encoding.UTF8);

            var cGHost = new MultipleTableTextTemplatingEngineHost()
            {
                ClassPrefix  = "Test",
                Developers   = "侯向阳",
                NameSpace    = "ZJJW",
                TablePrefix  = "CG_",
                TemplateFile = path,
                SaveFolder   = "Order",
                Tables       = new TableInfo[] {
                    new TableInfo()
                    {
                        TableName   = "CG_OrderInfo",
                        Description = "订单主表",
                        Columns     = new ColumnInfo[] {
                            new ColumnInfo()
                            {
                                ColumnName   = "ID",
                                Description  = "标识",
                                IsForeignKey = false,
                                IsIdentity   = false,
                                IsPrimaryKey = true,
                                Nullable     = false,
                                TypeName     = "varchar",
                                Length       = "36",
                                DefaultVal   = null,
                                Precision    = null
                            },
                            new ColumnInfo()
                            {
                                ColumnName   = "OrderNo",
                                Description  = "订单号",
                                IsForeignKey = false,
                                IsIdentity   = false,
                                IsPrimaryKey = false,
                                Nullable     = false,
                                TypeName     = "varchar",
                                Length       = "36",
                                DefaultVal   = null,
                                Precision    = null
                            }
                        }
                    }, new TableInfo()
                    {
                        Description = "订单详情表",
                        TableName   = "CG_OrderDetail",
                        Columns     = new ColumnInfo[] {
                            new ColumnInfo()
                            {
                                ColumnName   = "ID",
                                Description  = "标识",
                                IsForeignKey = false,
                                IsIdentity   = false,
                                IsPrimaryKey = true,
                                Nullable     = false,
                                TypeName     = "varchar",
                                Length       = "36",
                                DefaultVal   = null,
                                Precision    = null
                            },
                            new ColumnInfo()
                            {
                                ColumnName            = "OrderNo",
                                Description           = "订单号",
                                IsForeignKey          = true,
                                IsIdentity            = false,
                                IsPrimaryKey          = false,
                                Nullable              = false,
                                TypeName              = "varchar",
                                Length                = "36",
                                DefaultVal            = null,
                                Precision             = null,
                                ForeignKeyTable       = "CG_OrderInfo",
                                ForeignKeyTableColumn = "OrderNo",
                                relationship          = 2
                            }
                        }
                    }
                }
            };

            var content = new Mono.TextTemplating.TemplatingEngine().ProcessTemplate(input,
                                                                                     cGHost
                                                                                     );
        }