/// <summary> /// 生成代码文件 /// </summary> /// <param name="td">元数据表定义</param> public void CreateAllFile(bool isCheck,TableDef td) { //生成模型代码文件 this._CreateCodeFile(isCheck, eCreateCodeType.ModelCode, td); //生成操作方法代码 if (_CurrentConf.OutputOperationSplite) { this._CreateCodeFile(isCheck, eCreateCodeType.ModelOperator, td); } }
public void Parsetest() { string template = "@(Model.Table.Name + \".cs\")"; GlobalVariable par = new GlobalVariable(); TableDef tb =new TableDef(); tb.Name = "abc"; string strExpected = "abc.cs"; string result = RazorHelper.Parse(template, par, tb,"asfs"); Assert.AreEqual(strExpected, result); }
public static string Parse(string template, GlobalVariable par, TableDef tab,string cacheName) { string result = ""; //DynamicViewBag vb = new DynamicViewBag(); //vb.GetDynamicMemberNames() TemplateServiceConfiguration config = new TemplateServiceConfiguration(); config.BaseTemplateType = typeof(HtmlTemplateBase<>); TemplateService svc = new TemplateService(config); Razor.SetTemplateService(svc); result = Razor.Parse(template, new { GlobalVariable = par, Table = tab },cacheName); return result; }
public List<FieldDef> ObtainFields(TableDef td,string strFilter) { List<FieldDef> list = new List<FieldDef>(); DataTable dtCol = SourceUtility.GetColumnDefinition(_strConn,strFilter); foreach(DataRow dr in dtCol.Rows) { FieldDef fd = new FieldDef(); fd.Column_Id = int.Parse( dr["column_id"].ToString()); fd.Table = td; fd.Name = dr["Name"] as string ?? ""; fd.Description = dr["Description"] as string ?? ""; fd.RawType = dr["RawType"] as string ?? ""; list.Add(fd); } return list; }
/// <summary> /// 根据输入条生成对应文件 /// </summary> /// <param name="createType"></param> /// <param name="td"></param> /// <returns></returns> private void _CreateCodeFile(bool isCheck,eCreateCodeType createType, TableDef td) { //变化点2: string strOutputDir = ""; string strFileName = ""; string strNameSpace = ""; string strCodeTemplate = ""; switch (createType) { case eCreateCodeType.ModelCode: strOutputDir = RazorHelper.Parse(_CurrentConf.OutputDirPattern, _CurrentPar, td,"OutputDir"); strFileName = RazorHelper.Parse(_CurrentConf.OutputFileNamePattern, _CurrentPar, td,"FileName"); strNameSpace = RazorHelper.Parse(_CurrentConf.OutputCodeNameSpacePattern, _CurrentPar, td,"CodeNameSpacePattern"); td.CodeNameSpace = strNameSpace; strCodeTemplate = _CurrentConf.CodeTemplate; td.FileName = string.Format("{0}{1}", strOutputDir, strFileName); break; case eCreateCodeType.ModelOperator: strOutputDir = RazorHelper.Parse(_CurrentConf.OutputOperationDirPattern, _CurrentPar, td,"OutputOperationDir"); strFileName = RazorHelper.Parse(_CurrentConf.OutputOperationFileNamePattern, _CurrentPar, td,"OutputOperationFileName"); strNameSpace = RazorHelper.Parse(_CurrentConf.OutputOperationCodeNameSpacePattern, _CurrentPar, td,"OutputOperationCodeNameSpace"); strCodeTemplate = _CurrentConf.OperatorTemplate; td.OperationFileName = string.Format("{0}{1}", strOutputDir, strFileName); td.OperationCodeNameSpace = strNameSpace; break; default: break; } string strFilePath = string.Format("{0}{1}", strOutputDir, strFileName); string strFileContent = RazorHelper.Parse(strCodeTemplate, _CurrentPar, td,createType.ToString()); if (!isCheck) { FileHelper.WriteCodeToFile(strFilePath, strFileContent); } }
public List<TableDef> ObtainTables(string strFilter) { List<TableDef> list = new List<TableDef>(); DataTable dtTab = SourceUtility.GetTableDefinition(_strConn,strFilter); foreach(DataRow dr in dtTab.Rows) { TableDef td = new TableDef(); td.Object_Id = int.Parse(dr["object_id"].ToString()); td.Name = (string ) dr["Name"]; td.Schema = (string)dr["Schema"]; string fieldFilter = string.Format("a.Object_Id={0}", td.Object_Id); List<FieldDef> fields = this.ObtainFields(td,fieldFilter); td.Fields = fields; list.Add(td); } return list; }