private string ReplaceTokens(CodeMetaData codeMetaData, string dataModelText) { var result = dataModelText.Replace("<DataModelName />", codeMetaData.ModelName) .Replace("<Parameters />", codeMetaData.FormatListToString(codeMetaData.Parameters, "")) .Replace("<Sql />", codeMetaData.AllSql) .Replace("<Properties />", codeMetaData.FormatListToString(codeMetaData.Properties, "")) .Replace("<WhereClause />", codeMetaData.FormatListToString(codeMetaData.WhereClause, "")) .Replace("<TableList />", codeMetaData.FormatListToString(codeMetaData.TableList, "")); return(result); }
private void GenerateCodeForModel(string dataModel, IEnumerable <MetaData.DataModelDetailsRow> modelDetails, TextBox textBox = null) { { // build code metadata CodeMetaData codeMetaData = new CodeMetaData() { ModelName = dataModel, Parameters = GenerateCodeByTypeSql("xfnParamCreator", modelDetails), Sql = GenerateCodeByType("Sql", modelDetails), Properties = GenerateCodeByTypeSql("xfnModelCreator", modelDetails), WhereClause = GenerateCodeByTypeSql("xfnIIFCreator", modelDetails), TableList = GenerateCodeByType("TableList", modelDetails), }; // replace templates CreateFiles(codeMetaData, textBox); } }
private void CreateFiles(CodeMetaData codeMetaData, TextBox textBox = null) { string modelName = codeMetaData.ModelName; string dataModelText = LoadTemplate("datamodel.txt"); string dataModelBaseText = LoadTemplate("datamodelbase.txt"); string sql = LoadTemplate("sql.txt"); string sprocWrapper = LoadTemplate("sprocwrapper.txt"); sql = ReplaceTokens(codeMetaData, sql); codeMetaData.AllSql = sql; dataModelText = ReplaceTokens(codeMetaData, dataModelText); dataModelBaseText = ReplaceTokens(codeMetaData, dataModelBaseText); sprocWrapper = ReplaceTokens(codeMetaData, sprocWrapper); string serviceDirectory = Helpers.GetRestServiceDirectory(); GenerateFiles(dataModelText, modelName + ".cs", serviceDirectory + @"Models\", textBox); GenerateFiles(dataModelBaseText, modelName + ".cs", serviceDirectory + @"Models\Base\", textBox); GenerateFiles(sprocWrapper, modelName + ".sql", serviceDirectory + @"Sql\", textBox); }