public static bool SetCodeGeneratorSettings(CodeGeneratorSettingsInfo cgsettings) { try { XmlDocument objXmlDoc = GetCGConfigFile(); if (objXmlDoc == null) { return(false); } XmlNode objNode = objXmlDoc.SelectSingleNode(Constants.NODE_ROOT + Constants.CHAR_SLASH + Constants.NODE_CODEGENERATORSETTINGS); if (objNode == null) { return(false); } objNode.ChildNodes[0].InnerText = cgsettings.WorkingFolder; objNode.ChildNodes[1].InnerText = cgsettings.Template; objNode.ChildNodes[2].InnerText = cgsettings.VsTemplate; objNode.ChildNodes[3].InnerText = cgsettings.Output; objNode.ChildNodes[4].InnerText = cgsettings.Entity; string configFile = Path.Combine(Application.StartupPath, Constants.FILE_CGCONFIG); objXmlDoc.Save(configFile); return(true); } catch { return(false); } }
public static CodeGeneratorSettingsInfo GetCodeGeneratorSettings() { try { XmlDocument objXmlDoc = GetCGConfigFile(); if (objXmlDoc == null) { return(null); } CodeGeneratorSettingsInfo cgsettings = new CodeGeneratorSettingsInfo(); XmlNode objNode = objXmlDoc.SelectSingleNode(Constants.NODE_ROOT + Constants.CHAR_SLASH + Constants.NODE_CODEGENERATORSETTINGS); if (objNode == null) { return(null); } cgsettings.WorkingFolder = objNode.ChildNodes[0].InnerText; cgsettings.Template = objNode.ChildNodes[1].InnerText; cgsettings.VsTemplate = objNode.ChildNodes[2].InnerText; cgsettings.Output = objNode.ChildNodes[3].InnerText; cgsettings.Entity = objNode.ChildNodes[4].InnerText; return(cgsettings); } catch { return(null); } }
private static SingleGeneratorInfo GetSingleGeneratorConfig(string template, string project, string table) { CodeGeneratorSettingsInfo cgsettings = ConfigCtrl.GetCodeGeneratorSettings(); string xsltFile = cgsettings.Template + "\\" + template + "\\" + project + ".xslt"; string xmlFile = cgsettings.EntityFullPath + "\\" + table + ".xml"; return(new SingleGeneratorInfo(xsltFile, xmlFile)); }
public static void AddTemplate(string templatename) { CodeGeneratorSettingsInfo cgsettings = GetCodeGeneratorSettings(); if (cgsettings != null) { Directory.CreateDirectory(Path.Combine(cgsettings.Template, templatename)); } }
public static bool IsTemplateExist(string templatename) { CodeGeneratorSettingsInfo folder = GetCodeGeneratorSettings(); if (folder != null) { if (Directory.Exists(Path.Combine(folder.Template, templatename))) { return(true); } else { return(false); } } return(false); }
public static Collection <TemplateInfo> GetTemplates() { Collection <TemplateInfo> templates = new Collection <TemplateInfo>(); CodeGeneratorSettingsInfo cgsettings = GetCodeGeneratorSettings(); if (cgsettings != null) { if (Directory.Exists(cgsettings.Template)) { string[] directories = Directory.GetDirectories(cgsettings.Template); for (int ix = 0; ix < directories.Length; ix++) { templates.Add(new TemplateInfo(directories[ix], GetTemplateName(directories[ix]))); } } } return(templates); }
public static bool SetCodeGeneratorSettings(CodeGeneratorSettingsInfo cgsettings) { try { XmlDocument objXmlDoc = GetCGConfigFile(); if (objXmlDoc == null) return false; XmlNode objNode = objXmlDoc.SelectSingleNode(Constants.NODE_ROOT + Constants.CHAR_SLASH + Constants.NODE_CODEGENERATORSETTINGS); if (objNode == null) return false; objNode.ChildNodes[0].InnerText = cgsettings.WorkingFolder; objNode.ChildNodes[1].InnerText = cgsettings.Template; objNode.ChildNodes[2].InnerText = cgsettings.VsTemplate; objNode.ChildNodes[3].InnerText = cgsettings.Output; objNode.ChildNodes[4].InnerText = cgsettings.Entity; string configFile = Path.Combine(Application.StartupPath, Constants.FILE_CGCONFIG); objXmlDoc.Save(configFile); return true; } catch { return false; } }
public static CodeGeneratorSettingsInfo GetCodeGeneratorSettings() { try { XmlDocument objXmlDoc = GetCGConfigFile(); if (objXmlDoc == null) return null; CodeGeneratorSettingsInfo cgsettings = new CodeGeneratorSettingsInfo(); XmlNode objNode = objXmlDoc.SelectSingleNode(Constants.NODE_ROOT + Constants.CHAR_SLASH + Constants.NODE_CODEGENERATORSETTINGS); if (objNode == null) return null; cgsettings.WorkingFolder = objNode.ChildNodes[0].InnerText; cgsettings.Template = objNode.ChildNodes[1].InnerText; cgsettings.VsTemplate = objNode.ChildNodes[2].InnerText; cgsettings.Output = objNode.ChildNodes[3].InnerText; cgsettings.Entity = objNode.ChildNodes[4].InnerText; return cgsettings; } catch { return null; } }
private void btnOK_Click(object sender, EventArgs e) { try { if (txtWorkingFolder.Text == string.Empty) { txtWorkingFolder.Select(); MessageBox.Show("Working folder can't be empty!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Directory.Exists(txtWorkingFolder.Text)) { txtWorkingFolder.Select(); MessageBox.Show("Invalid path of Working folder!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtTemplate.Text == string.Empty) { txtTemplate.Select(); MessageBox.Show("Template folder can't be empty!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Directory.Exists(txtTemplate.Text)) { txtTemplate.Select(); MessageBox.Show("Invalid path of Template folder!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtVsTemplate.Text == string.Empty) { txtVsTemplate.Select(); MessageBox.Show("Visual Studio Template folder can't be empty!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Directory.Exists(txtVsTemplate.Text)) { txtVsTemplate.Select(); MessageBox.Show("Invalid path of Visual Studio Template folder!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtOutput.Text == string.Empty) { txtOutput.Select(); MessageBox.Show("Output folder can't be empty!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!DataValidation.IsValidPathName(txtOutput.Text)) { txtOutput.Select(); MessageBox.Show("Invalid charaters for Output folder name!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtEntity.Text == string.Empty) { txtEntity.Select(); MessageBox.Show("Entity folder name can't be empty!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!DataValidation.IsValidPathName(txtEntity.Text)) { txtEntity.Select(); MessageBox.Show("Invalid charaters for Entity folder name", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } CodeGeneratorSettingsInfo cgsettings = new CodeGeneratorSettingsInfo(); cgsettings.WorkingFolder = txtWorkingFolder.Text; cgsettings.Template = txtTemplate.Text; cgsettings.VsTemplate = txtVsTemplate.Text; cgsettings.Output = txtOutput.Text; cgsettings.Entity = txtEntity.Text; if (!ConfigCtrl.SetCodeGeneratorSettings(cgsettings)) { MessageBox.Show("Failed to save!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { Program.ShowMessageBox("DlgWorkingFolderSetting.btnOK_Click", ex); } }
public void TaskRun() { try { //重新读取 Task = ConfigCtrl.GetTask(_taskid, _taskname); base.ExecutionLog = new StringBuilder(); //base.Proxy = ConfigCtrl.GetProxy(); //base.Delay = ConfigCtrl.GetDelay(); SetMessage(Constants.COMMAND_CLEARLOG); //start SetMessage("\r\n" + "============================== START =============================="); CodeGeneratorSettingsInfo cgsettings = ConfigCtrl.GetCodeGeneratorSettings(); SetMessageLn("Check working folders:" + cgsettings.WorkingFolder); if (!Directory.Exists(cgsettings.WorkingFolder)) { SetMessageLn("Working folders doesn't exist! Execution aborted!"); return; } string taskfolder = Path.Combine(cgsettings.WorkingFolder, Task.TaskName); if (!Directory.Exists(taskfolder)) { Directory.CreateDirectory(taskfolder); } string entityfolder = Path.Combine(taskfolder, cgsettings.Entity); if (!Directory.Exists(entityfolder)) { Directory.CreateDirectory(entityfolder); } string outputfolder = Path.Combine(taskfolder, cgsettings.Output); if (!Directory.Exists(outputfolder)) { Directory.CreateDirectory(outputfolder); } Collection <TableInfo> tables = Johnny.CodeGenerator.Core.DatabaseCtrl.GetTables(Task.DatabaseServer.ConnectionString, Task.DatabaseServer.ServerName, Task.DatabaseServer.DatabaseName); int modulenum = 0; foreach (ModuleInfo module in Task.Modules) { modulenum++; SetMessageLn("------ Totally [" + Task.Modules.Count + "] modules, No.[" + modulenum + "]:" + module.ModuleName + " ------"); string modulefolder = Path.Combine(outputfolder, module.ModuleName); if (!Directory.Exists(modulefolder)) { Directory.CreateDirectory(modulefolder); } int tablenum = 0; foreach (TableInfo table in Task.Tables) { try { //Thread.Sleep(2000); this._module = Constants.MSG_TASK; tablenum++; SetMessageLn("------ Totally [" + Task.Tables.Count + "] tables, No.[" + tablenum + "]:" + table.TableName + " ------"); foreach (TableInfo item in tables) { if (table.TableName == item.TableName) { string prefix = Task.NameSpacePrefix; string suffix = Task.NameSpaceSuffix; string xmlfile = Path.Combine(entityfolder, String.Concat(Generator.GetModelName(item.TableName), ".xml")); string xsltfile = Path.Combine(cgsettings.Template, Path.Combine(Task.Template, String.Concat(module.ModuleName, ".xslt"))); string outputfile = Path.Combine(outputfolder, Path.Combine(module.ModuleName, String.Concat(Generator.GetModelName(item.TableName), ".cs"))); Generator.BulkGenerator(item, entityfolder, prefix, suffix, xmlfile, xsltfile, outputfile); } } } catch (ThreadAbortException) { //LogHelper.Write("TaskManager.TaskRun", "ThreadAbortException" + account.UserName, LogSeverity.Info); } catch (ThreadInterruptedException) { //LogHelper.Write("TaskManager.TaskRun", "ThreadInterruptedException" + account.UserName, LogSeverity.Info); } catch (Exception ex) { Log4Helper.Write("TaskManager.TaskRun", table.TableName, ex, LogSeverity.Error); SetMessageLn("Exception occured, the code generation for this table failed! Error:" + ex.Message); } } } SetMessage("\r\n" + "============================== FINISHED =============================="); _module = Constants.MSG_TASK; if (Task.WriteLogToFile) { WriteLogToFile(Task.TaskName, this.ExecutionLog.ToString()); } } catch (ThreadAbortException) { //LogHelper.Write("TaskManager.TaskRun", "AferAllAccounts-ThreadAbortException", LogSeverity.Info); } catch (ThreadInterruptedException) { //LogHelper.Write("TaskManager.TaskRun", "AferAllAccounts-ThreadInterruptedException", LogSeverity.Info); } catch (Exception ex) { Log4Helper.Write("TaskManager.TaskRun", ex); SetMessageLn("Exception occurs, the current task has been aborted! Error:" + ex.Message); } }