private void BtnGenPHP_Click(object sender, EventArgs e) { var phpObject = new PHPGenerator(list); phpObject.GenerateByTable(path + "PHP\\"); MessageBox.Show("Done Creating PHP Files"); }
protected void OnGenerateCode(object parameter) { switch (CurrentTool.Language) { case "javascript": //Check for source files string fileStatus = DocumentCreator.AddFile(@"D:\Zkit\SourceFiles", @"Output\Scripts", "CommonObjects.js"); //Create CSS CSSGenerator css = new CSSGenerator(CurrentTool); string cssStatus = DocumentCreator.CreateDocument(@"Output\Styles", (CurrentTool.Parent != null ? ((Project)CurrentTool.Parent).Name : "Project") + "Styles", "css", css.GenerateDoc(), true); PHPGenerator php = new PHPGenerator(CurrentTool); //set php info here php.DB = "zkit"; php.Pass = "******"; php.Server = "localhost"; php.User = "******"; //Create PHP Scripts string phpStatus = DocumentCreator.CreateDocument(@"Output\PHP", "connect", "php", php.GenerateConnectDoc(), true); if (!String.IsNullOrWhiteSpace(phpStatus)) { MessageBox.Show(phpStatus); } phpStatus = DocumentCreator.CreateDocument(@"Output\PHP", "save_" + (CurrentTool.Parent != null ? ((Project)CurrentTool.Parent).Name : "Project"), "php", php.GenerateSaveDoc(), true); if (!String.IsNullOrWhiteSpace(phpStatus)) { MessageBox.Show(phpStatus); } phpStatus = DocumentCreator.CreateDocument(@"Output\PHP", "load_" + (CurrentTool.Parent != null ? ((Project)CurrentTool.Parent).Name : "Project"), "php", php.GenerateLoadDoc(), true); if (!String.IsNullOrWhiteSpace(phpStatus)) { MessageBox.Show(phpStatus); } //Create Javascript files JavascriptGenerator js = new JavascriptGenerator(CurrentTool); js.ProjectName = CurrentTool.Parent != null ? ((Project)CurrentTool.Parent).Name : "Project"; //Needs to be the name of the objecst string jsStatus = DocumentCreator.CreateDocument(@"Output\Scripts", js.ProjectName, "js", js.GenerateDoc(), true); if (!String.IsNullOrWhiteSpace(jsStatus)) { MessageBox.Show(jsStatus); } jsStatus = DocumentCreator.CreateDocument(@"Output\Scripts", js.ProjectName + "_functions", "js", js.GenerateFunctionsDoc(), true); if (!String.IsNullOrWhiteSpace(jsStatus)) { MessageBox.Show(jsStatus); } HTMLGenerator g = CurrentTool.HTML; g.ProjectName = CurrentTool.Parent != null ? ((Project)CurrentTool.Parent).Name : "Project"; g.ToolRef = CurrentTool; g.ScriptIncludes.Add("CommonObjects.js"); g.ScriptIncludes.Add(js.ProjectName + ".js"); g.ScriptIncludes.Add("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"); g.ScriptIncludes.Add(g.ProjectName + "_functions.js"); g.GenerateDoc(); //Creates begining point of doc //Load js objects var htmlTag = g.Tags.Where(x => x.TagName == "html").FirstOrDefault(); if (htmlTag != null && htmlTag.GetType() == typeof(HTMLTagBase)) { var headTag = ((HTMLTagBase)htmlTag).Children.Where(x => x.TagName == "head").FirstOrDefault(); if (headTag != null) { var scriptTag = ((HTMLTagBase)headTag).Children.Where(x => x.TagName == "script").FirstOrDefault(); HTMLTagBase script = null; if (scriptTag != null) { script = (HTMLTagBase)scriptTag; } else //create a script tag { script = new HTMLTagBase(); script.TagName = "script"; headTag.Children.Add(script); } List <string> names = new List <string>(); foreach (var o in CurrentTool.Objects) { names.Add(o.Name); } script.InnerHTML = JavascriptGenerator.GenerateInitFunction(names); } var bodyTag = ((HTMLTagBase)htmlTag).Children.Where(x => x.TagName == "body").FirstOrDefault(); if (bodyTag != null) { bodyTag.Elements.Add("onload", "initObjs();"); } } else //no html tag found. Something is wrong. { } string htmlDoc = g.ReOutputDoc(); string status = DocumentCreator.CreateDocument("Output", CurrentTool.Parent != null ? ((Project)CurrentTool.Parent).Name : "Project", "html", htmlDoc, true); if (!String.IsNullOrWhiteSpace(status)) { MessageBox.Show(status); } //TODO: Finish adding all report elements - tags in reports.html, additional scripts //***** Create Report Document HTMLTagBase reportDoc = g.CreateReportPage(); var reportHeadTag = ((HTMLTagBase)reportDoc).Children.Where(x => x.TagName == "head").FirstOrDefault(); if (reportHeadTag != null) { var scriptTag = ((HTMLTagBase)reportHeadTag).Children.Where(x => x.TagName == "script").FirstOrDefault(); HTMLTagBase script = null; if (scriptTag != null) { script = (HTMLTagBase)scriptTag; } else //create a script tag { script = new HTMLTagBase(); script.TagName = "script"; reportHeadTag.Children.Add(script); } List <string> names = new List <string>(); foreach (var o in CurrentTool.Objects) { names.Add(o.Name); } script.InnerHTML = JavascriptGenerator.GenerateReportInitFunction(names, CurrentTool.Objects.ElementAt(0)); } var reportBodyTag = ((HTMLTagBase)reportDoc).Children.Where(x => x.TagName == "body").FirstOrDefault(); if (reportBodyTag != null) { reportBodyTag.Elements["onload"] += "initObjs();"; } status = DocumentCreator.CreateDocument("Output", "Reports", "html", reportDoc.GenerateTag(), true); if (!String.IsNullOrWhiteSpace(status)) { MessageBox.Show(status); } //***** Create SQL Scripts SQLGenerator sql = new SQLGenerator(CurrentTool); string sqlStatus = DocumentCreator.CreateDocument("Output", "CREATE_TABLES", "sql", sql.GenerateDoc(), true); MessageBox.Show("Files Created!"); break; } }
public static void PerformModelGenerate(TargetLanguage targetLanguage, TargetDatabaseConnector targetDatabaseConnector, string connectionString, string directory, string @namespace) { IModelGenerator generator = default; switch (targetLanguage) { case TargetLanguage.CSharp: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new CSharpGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new CSharpGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new CSharpGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new CSharpGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new CSharpGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.VisualBasic: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new VisualBasicGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new VisualBasicGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new VisualBasicGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new VisualBasicGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new VisualBasicGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.TypeScript: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new TypeScriptGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new TypeScriptGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new TypeScriptGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new TypeScriptGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new TypeScriptGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.PHP: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new PHPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new PHPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new PHPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new PHPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new PHPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Python: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new PythonGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new PythonGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new PythonGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new PythonGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new PythonGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Python37: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new Python37Generator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new Python37Generator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new Python37Generator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new Python37Generator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new Python37Generator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Java: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new JavaGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new JavaGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new JavaGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new JavaGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new JavaGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.CPP: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new CPPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new CPPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new CPPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new CPPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new CPPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; case TargetLanguage.Golang: switch (targetDatabaseConnector) { case TargetDatabaseConnector.SQLServer: generator = new GolangGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]"); break; case TargetDatabaseConnector.Oracle: generator = new GolangGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.MySQL: generator = new GolangGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.PostgreSQL: generator = new GolangGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace); break; case TargetDatabaseConnector.SQLite: generator = new GolangGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace); break; } break; } generator.Generate(); }