/// <summary>
        /// 根据模版获取生成的代码
        /// </summary>
        public string GetByTable(
            string tableName,
            TemplateEntity templ
            )
        {
            TableEntity     table = service.GetTableByName(Project.ID.ToString(), tableName);
            CodeBuilderHost host  = new CodeBuilderHost();

            host.User          = User;
            host.Columns       = service.GetColumnList(table.ID.ToString()).ToList();
            host.Project       = Project;
            host.Table         = table;
            host.FileExtension = templ.FileExtensions;
            host.TemplateFile  = "";
            //开始生成代码
            Engine engine = new Engine();
            //string input = File.ReadAllText(host.TemplateFile,Encoding.Default);
            string input      = templ.Content;
            string outputText = engine.ProcessTemplate(input, host);

            //写入生成错误信息
            foreach (CompilerError createError in host.Errors)
            {
                Error.AppendLine(createError.ToString());
            }
            return(outputText);
        }
Exemple #2
0
        protected List <TableEntity> ReaderTables(List <TableInfo> tables)
        {
            List <TableEntity> entitys = new List <TableEntity>();

            foreach (TableInfo table in tables)
            {
                //检测表是否存在
                try
                {
                    TableEntity tableEntity = service.GetTableByName(Project.ID.ToString(), table.TableName);
                    if (tableEntity == null)
                    {
                        tableEntity = new TableEntity();
                    }
                    tableEntity.TableName = table.TableName;
                    tableEntity.Attr      = table.Attr;
                    tableEntity.Remark    = table.Remark;
                    tableEntity.ProjectID = Project.ID;
                    tableEntity.Enabled   = true;
                    if (tableEntity.ID > 0)
                    {
                        service.UpdateTable(tableEntity);
                    }
                    else
                    {
                        tableEntity.ID = service.AddTable(tableEntity);
                    }
                    if (tableEntity.ID > 0)
                    {
                        entitys.Add(tableEntity);
                        ReaderColumns(tableEntity, table.Columns);
                    }
                }
                catch (Exception ex)
                {
                    Error.AppendLine("读取数据表—" + table.TableName + "出错!" + ex.Message);
                    continue;
                }
            }
            return(entitys);
        }
Exemple #3
0
        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            var                checkeds  = e.Argument as List <string>;
            List <string>      nonDelete = new List <string>();
            CodeBuilderService service   = ServiceHelper.GetCodeBuilderService();
            int                i         = 0;

            foreach (var tableName in checkeds)
            {
                i++;
                backgroundWorker.ReportProgress(i);
                bool result = false;
                try
                {
                    TableEntity table = service.GetTableByName(Global.GetCurrentProjectID(), tableName);
                    if (table != null)
                    {
                        result = service.DeleteTable(table.ID.ToString());
                    }
                }
                catch (Exception ex)
                {
                    result = false;
                }
                if (!result)
                {
                    nonDelete.Add(tableName);
                }
                else
                {
                    SuccessCount++;
                }
            }
            if (nonDelete.Count > 0)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("删除失败的表如下:");
                sb.AppendLine(string.Join(",", nonDelete.ToArray()));
                Utils.ShowErrorDialog(sb.ToString());
            }
        }