void SaveToProject()
        {
            TreeNode node = tvProjectItems.SelectedNode;

            string moduleName       = txtModuleName.Text;
            CodeGeneratorModule mod = null;
            int i = 0;

            foreach (CodeGeneratorModule module in CurrentProject.Modules)
            {
                if (module.ModuleName == moduleName)
                {
                    mod = module;
                    break;
                }
                i++;
            }

            if (mod == null)
            {
                mod = new CodeGeneratorModule();
                CurrentProject.Modules.Add(mod);
            }
            else
            {
                CurrentProject.Modules[i] = mod;
            }

            mod = PopulateModule(mod);
            SaveProjectToFile();
            DisplayProject();
        }
        void DeleteModule()
        {
            DialogResult result = MessageBox.Show("Confirm deletion", "Are you sure you want to delete it?", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                CodeGeneratorModule module = (CodeGeneratorModule)this.tvProjectItems.SelectedNode.Tag;
                CurrentProject.Modules.Remove(module);
                SaveProject(CurrentProject.Filename);
                DisplayProject();
                tvProjectItems.ExpandAll();
            }
        }
        void CreateNewModule()
        {
            FormCreateModule frm = new FormCreateModule();

            frm.ShowDialog();
            if (frm.Module != null)
            {
                InitCmbModelTypes();
                CodeGeneratorModule module = frm.Module;
                CurrentProject.Modules.Add(module);
                DisplayProject();
                SelectModuleNode(module.SessionName);
            }
        }
예제 #4
0
        void GenerateAll(string path, CodeGeneratorProject project, CodeGeneratorModule module)
        {
            List <CodeTemplate> codeTemplates = (List <CodeTemplate>)dataGridView1.DataSource;

            foreach (CodeTemplate template in codeTemplates)
            {
                if (template.Checked)
                {
                    Info("Generating " + module.SessionName + " : " + template.TemplateName);

                    string          filename  = template.DefaultFilename.Replace("<companyname>", project.Company).Replace("<projectname>", project.ProjectName).Replace("<modulename>", module.ModuleName);
                    DataSourceTable table     = (DataSourceTable)module.Datasource;
                    string          tableName = table.TableName;
                    filename = filename.Replace("<tablename>", tableName);
                    filename = path + "/" + filename;

                    string dir = System.IO.Path.GetDirectoryName(filename);
                    if (System.IO.Directory.Exists(dir) == false)
                    {
                        System.IO.Directory.CreateDirectory(dir);
                    }

                    Info("Generating file : " + module.SessionName + " : " + filename);

                    string result = CodeCompiler.GenerateCodeForModule(project, module, template.TemplateCodePlain);
                    result = result.Replace("\\%", "%");

                    try
                    {
                        System.IO.File.WriteAllText(filename, result);
                        Info("Done ");
                    }
                    catch (Exception err)
                    {
                        Info(err.Message);
                    }


                    currentProgress++;
                    this.SetPgBarValue(currentProgress);
                }
            }

            if (this.OnGenerateDoneEvent != null)
            {
                this.OnGenerateDoneEvent(module);
            }
            //MessageBox.Show("Done");
        }
        void EditNewModule()
        {
            FormCreateModule frm = new FormCreateModule();

            frm.Module = CurrentModule;
            frm.ShowDialog();
            if (frm.Module != null)
            {
                InitCmbModelTypes();
                CodeGeneratorModule module = frm.Module;
                SaveProject(CurrentProject.Filename);
                DisplayProject();
                tvProjectItems.ExpandAll();
                SelectModuleNode(module.SessionName);
            }
        }
        CodeGeneratorModule PopulateModule(CodeGeneratorModule module)
        {
            module.ModuleName = txtModuleName.Text;
            module.Namespace  = txtNamespace.Text;
            module.Classname  = txtClassName.Text;
            module.Connection = (SavedConnection)cmbSavedConnection.SelectedItem;
            //if(module.Datasource == null)
            //module.Datasource = (DataSourceTable)cmbDatasource.SelectedItem;

            ModelType modelType = (ModelType)cmbModelType.SelectedItem;

            module.Datasource = (DataSourceTable)modelType.Datasource;

            module.ModelType = ((ModelType)cmbModelType.SelectedItem).Clone();
            return(module);
        }
        void DisplayModule(CodeGeneratorModule module)
        {
            txtProjectName.Text        = this.CurrentProject.ProjectName;
            txtModuleName.Text         = module.ModuleName;
            groupSessionModule.Visible = true;
            if (module.Connection != null)
            {
                cmbSavedConnection.SelectedValue = module.Connection.ConnectionName;
            }


            txtClassName.Text = module.Classname;
            txtNamespace.Text = module.Namespace;


            if (module.ModelType != null)
            {
                cmbModelType.SelectedIndex = GetCmbSelectedTypeSelectedIndex(module.ModelType.ModelTypeName);
            }

            if (module.ModelType != null)
            {
                //formPanel.Controls.Clear();
                //formPanel.Controls.Add((UserControl)module.ModelType.ModelTypeConfigurator);
                //module.ModelType.ModelTypeConfigurator.UpdateDatasource(module.ModelType.ModelTypeConfigurator.GetDatasource());
            }

            if (module != null)
            {
                if (module.Datasource != null)
                {
                    cmbDatasource.SelectedIndex = GetCmbSelectedDatasourceSelectedIndex(module.Datasource.TableName);
                }

                ModelType modelType = (ModelType)cmbModelType.SelectedItem;
                //modelType.Datasource = module.ModelType.Datasource;
                //if(module.ModelType != null)
                if (modelType != null)
                {
                    modelType.Datasource = module.Datasource;
                }
            }
        }
        public static string GenerateCodeForModule(CodeGeneratorProject Project, CodeGeneratorModule module, string templateCode, bool isProjectTemplate = false)
        {
            templateCode = templateCode.Replace("{CURRENTDIRECTORY}", System.IO.Directory.GetCurrentDirectory());
            string tmpCodeFile = System.IO.Directory.GetCurrentDirectory() + "/tmp.source.aspx";

            File.WriteAllText(tmpCodeFile, templateCode);

            AspCompiler.Template           template   = new AspCompiler.Template(tmpCodeFile);
            AspCompiler.TemplateParameters parameters = new AspCompiler.TemplateParameters();
            AspCompiler.TemplateParameter  param      = new AspCompiler.TemplateParameter(typeof(CodeGeneratorProject), "Project", Project);
            parameters.Add(param);
            param = new AspCompiler.TemplateParameter(typeof(CodeGeneratorModule), "Module", module);
            parameters.Add(param);

            string currentPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            string[] assemblies = new string[4];
            assemblies[0] = currentPath + "\\Com.Wiseape.Utility.dll";
            assemblies[1] = currentPath + "\\Com.Wiseape.UtilityApp.CodeGenerator.dll";
            assemblies[2] = currentPath + "\\AspCompiler.dll";
            assemblies[3] = currentPath + "\\Com.Wiseape.UtilityApp.CodeGenerator.Helper.dll";


            string[] namespaces = new string[7];
            namespaces[0] = "System.Collections.Generic";
            namespaces[1] = "System.Collections";
            namespaces[2] = "Com.Wiseape.UtilityApp.CodeGenerator.Model";
            namespaces[3] = "Com.Wiseape.UtilityApp.CodeGenerator.Business";
            namespaces[4] = "Com.Wiseape.Utility";
            namespaces[5] = "AspCompiler";
            namespaces[6] = "Com.Wiseape.UtilityApp.CodeGenerator.Helper";

            //namespaces[4] = "System.Data";

            template.Compile(assemblies, namespaces, parameters);
            string tmpFile = System.IO.Directory.GetCurrentDirectory() + "/tmp.result";

            template.Execute(tmpFile);
            string content = System.IO.File.ReadAllText(tmpFile);

            return(content);
        }
예제 #9
0
 private void FormCodeTemplate_OnGenerateDoneEvent(CodeGeneratorModule module)
 {
     DisplayInfo("Done!");
 }