Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        public static void AddTemplate(string templatename)
        {
            CodeGeneratorSettingsInfo cgsettings = GetCodeGeneratorSettings();

            if (cgsettings != null)
            {
                Directory.CreateDirectory(Path.Combine(cgsettings.Template, templatename));
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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;
            }
        }
Ejemplo n.º 8
0
        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;
            }
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 10
0
        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);
            }
        }