Ejemplo n.º 1
0
        bool UiAction_SaveProject()
        {
            if (!_currentProject_Opened)
            {
                dlgSaveProject.Title = "Save Project";
                if (dlgSaveProject.ShowDialog() == DialogResult.OK)
                {
                    string saveProect = dlgSaveProject.FileName;
                    ProjectDefinaton.SaveToFile(_projectDefinaton, saveProect);

                    _currentProject_Filename = saveProect;
                    _currentProject_Opened   = true;

                    Refresh_ProjectDefinaton();
                    SetModified(false);

                    // menu list!
                    _recentProjects.NewFileOperation(saveProect);
                    _recentProjects.Rebuild();


                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                ProjectDefinaton.SaveToFile(_projectDefinaton, _currentProject_Filename);
                SetModified(false);
                return(true);
            }
        }
Ejemplo n.º 2
0
        void UiAction_OpenProjectDirect(string projectFile)
        {
            if (!File.Exists(projectFile))
            {
                if (MessageBox.Show("Project file does not exists:\n" + projectFile + "\n\nWould you like to remove it from recent list?", "Open project", MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Stop) == DialogResult.Yes)
                {
                    _recentProjects.RemoveFile(projectFile);
                    _recentProjects.Rebuild();
                }
                return;
            }

            try
            {
                ProjectDefinaton openProject = ProjectDefinaton.LoadFromFile(projectFile);

                // Load patterns first
                try
                {
                    Reload_ProjectDefinaton(
                        Common.AppVarPathMakeAbsolute(openProject.CodeGenSettings.CodeGenPatternFile));
                }
                catch
                {
                    if (MessageBox.Show("Failed to open the pattern project from selected project!\nWould you like ignore this error and continue?", "Open project", MessageBoxButtons.YesNo, MessageBoxIcon.Stop)
                        == DialogResult.No)
                    {
                        return;
                    }
                    // continue to read others!
                }

                // assign new project
                _projectDefinaton = openProject;

                // refresh form
                Refresh_Form();

                // save the file name
                _currentProject_Filename = projectFile;
                _currentProject_Opened   = true;

                // menu list!
                _recentProjects.NewFileOperation(projectFile);
                _recentProjects.Rebuild();

                // The project is fresh
                SetModified(false);
            }
            catch (Exception)
            {
                MessageBox.Show("Failed to open the selected project!", "Open project", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
Ejemplo n.º 3
0
        void UiAction_ProjectOptions()
        {
            using (var frm = new frmProjectDetails(frmProjectDetails.FormEditMode.Edit))
            {
                frm.ProjectInstance = (ProjectDefinaton)_projectDefinaton.Clone();
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    _projectDefinaton = frm.ProjectInstance;
                    Refresh_Form();

                    SetModified(true);
                }
            }
        }
Ejemplo n.º 4
0
        void InitializeApplication()
        {
            _projectDefinaton = ProjectDefinaton.LoadDefaultProject();
            _patternProject   = new PatternProject();
            _recentProjects   = new RecentProjects(mnuReopen, mnuReopenRecentFile_Click);
            Reload_ProjectDefinaton();

            // refresh presentation
            Refresh_Form(true);

            // recent projects list
            InitializeRecentMenu();

            // Modified
            SetModified(false);
        }
Ejemplo n.º 5
0
        void UiAction_SaveAsProject()
        {
            dlgSaveProject.Title = "Save Project As";
            if (dlgSaveProject.ShowDialog() == DialogResult.OK)
            {
                string saveProect = dlgSaveProject.FileName;
                ProjectDefinaton.SaveToFile(_projectDefinaton, saveProect);
                _currentProject_Filename = saveProect;
                _currentProject_Opened   = true;

                Refresh_ProjectDefinaton();

                SetModified(false);

                _recentProjects.NewFileOperation(saveProect);
                _recentProjects.Rebuild();
            }
        }
Ejemplo n.º 6
0
        void UiAction_NewProject()
        {
            using (var frmNew = new frmProjectDetails(frmProjectDetails.FormEditMode.New))
            {
                frmNew.ProjectInstance = ProjectDefinaton.LoadDefaultProject();
                if (frmNew.ShowDialog() == DialogResult.OK)
                {
                    _projectDefinaton = frmNew.ProjectInstance;
                    _patternProject   = PatternProject.ReadFromFile(
                        Common.AppVarPathMakeAbsolute(_projectDefinaton.CodeGenSettings.CodeGenPatternFile));
                    Refresh_Form(true);


                    SetModified(true);
                    _currentProject_Opened = false;
                    // Reload everything
                }
            }
        }
        public void InitializeSchemaProject()
        {
            Project  = new ProjectDefinaton();
            Pattern  = new PatternProject();
            Database = new DbDatabase();

            Project.GenerationPath = Path.Combine(Path.GetTempPath(), @"SalarDbCodeGenerator.Tests\" + DateTime.Now.Ticks);
            Project.ProjectName    = "SalarDbCodeGenerator.Tests";

            Pattern.LanguageSettings.KeywordsCaseSensitive        = true;
            Pattern.LanguageSettings.LanguageInvalidChars         = ", ./<>?;'\\:\"|[]{}`-=~!@#$%^&*()+";
            Pattern.LanguageSettings.LanguageInvalidCharsSuppress = '_';
            Pattern.LanguageSettings.LanguageKeywords.AddRange(new string[]
            {
                "readonly", "base", "break", "byte", "case", "catch", "checked",
                "class", "const", "continue", "default", "delegate", "do",
                "value", "else", "enum", "event", "explicit", "extern", "false",
                "finally", "fixed", "for", "foreach", "goto", "if", "implicit",
                "in", "interface", "internal", "is", "namespace", "new", "null",
                "object", "operator", "out", "override", "private", "protected",
                "public", "readonly", "ref", "return", "sealed", "sizeof",
                "static", "struct", "switch", "this", "throw", "true", "try",
                "typeof", "typeof", "unchecked", "unsafe", "using", "virtual",
                "while"
            });
            Pattern.LanguageSettings.NullableDataTypes.AddRange(new[] { "String", "Object" });
            Pattern.LanguageSettings.ExplicitCastDataTypes.AddRange(new[] { "Object", "Guid", "DateTimeOffset", "TimeSpan" });
            Pattern.LanguageSettings.VoidDataType             = "void";
            Pattern.LanguageSettings.TextFieldIdenticator     = "text";
            Pattern.LanguageSettings.ArrayIdenticator         = "[]";
            Pattern.LanguageSettings.DbDecimalName            = "decimal";
            Pattern.LanguageSettings.DbNumericName            = "numeric";
            Pattern.LanguageSettings.DbDecimalType            = "decimal([:Precision:],[:Scale:])";
            Pattern.LanguageSettings.DbNumericType            = "numeric([:Precision:],[:Scale:])";
            Pattern.LanguageSettings.LanguageKeywordsSuppress = "{0}_{1}";


            Database.DatabaseName = "SalarDbCodeGeneratorTests";
            Database.Provider     = DatabaseProvider.SQLServer;
        }
 public SchemaAnalyzer(ProjectDefinaton project, PatternProject pattern, DbDatabase database)
 {
     _patternProject = pattern;
     _projectDef     = project;
     _database       = database;
 }
        private void InitializeProjectModel()
        {
            if (ProjectInstance == null)
            {
                // load default settings
                ProjectInstance = ProjectDefinaton.LoadDefaultProject();
            }

            ProjectInstance.ProjectName = txtProjectName.Text;
            ProjectInstance.CodeGenSettings.DefaultNamespace = txtNamespace.Text;
            ProjectInstance.GenerationPath = txtGenerationPath.Text;
            ProjectInstance.CodeGenSettings.CodeGenPatternFile = txtPatternfile.Text;

            ProjectInstance.CodeGenSettings.GenerateTablesForeignKeys  = chkGenForeignKey.Checked;
            ProjectInstance.CodeGenSettings.GenerateColumnsDescription = chkGenDescription.Checked;

            ProjectInstance.CodeGenSettings.GenerateConstraintKeys = chkTableConstraintKeys.Checked;

            ProjectInstance.RenamingOptions.UnderlineWordDelimiter     = chkRenUnderlineWordDelimiter.Checked;
            ProjectInstance.RenamingOptions.RemoveUnderline.Enabled    = chkRenRemUnderline.Checked;
            ProjectInstance.RenamingOptions.RemoveUnderline.Tables     = chkRenUnderlineTables.Checked;
            ProjectInstance.RenamingOptions.RemoveUnderline.Properties = chkRenUnderlineProps.Checked;

            ProjectInstance.RenamingOptions.CaseChange.Enabled    = chkRenamingCase.Checked;
            ProjectInstance.RenamingOptions.CaseChange.Tables     = chkRenCaseTables.Checked;
            ProjectInstance.RenamingOptions.CaseChange.Properties = chkRenCaseProps.Checked;
            ProjectInstance.RenamingOptions.CaseChangeMode        = (ProjectRenaming.CaseChangeType)cmbRenamingCase.SelectedValue;

            if (pagerDatabaseProvider.SelectedTab == tabSQLServer)
            {
                ProjectInstance.DbSettions.ServerName           = txtSqlHost.Text;
                ProjectInstance.DbSettions.DatabaseName         = txtSqlDbName.Text;
                ProjectInstance.DbSettions.SqlUsername          = txtSqlUsername.Text;
                ProjectInstance.DbSettions.SqlPassword          = txtSqlPassword.Text;
                ProjectInstance.DbSettions.UseSqlAuthentication = rbtnSqlAuthentication.Checked;
                ProjectInstance.DbSettions.ConnectTimeout       = Convert.ToInt32(txtSqlConnectTimeout.Text);
                ProjectInstance.DbSettions.DatabaseProvider     = DatabaseProvider.SQLServer;
            }
            else if (pagerDatabaseProvider.SelectedTab == tabSQLite)
            {
                ProjectInstance.DbSettions.ServerName = txtSQLiteDatabaseName.Text;
                try
                {
                    ProjectInstance.DbSettions.DatabaseName = Path.GetFileNameWithoutExtension(txtSQLiteDatabaseName.Text);
                }
                catch { }
                ProjectInstance.DbSettions.SqlUsername          = "";
                ProjectInstance.DbSettions.SqlPassword          = txtSQLitePassword.Text;
                ProjectInstance.DbSettions.UseSqlAuthentication = false;
                ProjectInstance.DbSettions.ConnectTimeout       = Convert.ToInt32(txtSQLiteConnectTimeout.Text);
                ProjectInstance.DbSettions.DatabaseProvider     = DatabaseProvider.SQLite;
            }
            else if (pagerDatabaseProvider.SelectedTab == tabSqlCe)
            {
                ProjectInstance.DbSettions.ServerName = txtSqlCeDatabaseName.Text;
                try
                {
                    ProjectInstance.DbSettions.DatabaseName = Path.GetFileNameWithoutExtension(txtSqlCeDatabaseName.Text);
                }
                catch { }
                ProjectInstance.DbSettions.SqlUsername = "";
                ProjectInstance.DbSettions.SqlPassword = txtSqlCePassword.Text;
                if (string.IsNullOrEmpty(txtSqlCePassword.Text))
                {
                    ProjectInstance.DbSettions.UseSqlAuthentication = false;
                }
                else
                {
                    ProjectInstance.DbSettions.UseSqlAuthentication = true;
                }

                ProjectInstance.DbSettions.ConnectTimeout   = -1;
                ProjectInstance.DbSettions.DatabaseProvider = DatabaseProvider.SqlCe4;
            }
            else if (pagerDatabaseProvider.SelectedTab == tabOracle)
            {
                ProjectInstance.DbSettions.ServerName     = txtOrclDataSource.Text;
                ProjectInstance.DbSettions.ConnectTimeout = Convert.ToInt32(txtOrclConnectTimeout.Text);

                ProjectInstance.DbSettions.UseSqlAuthentication = rbtnOrclSpecificUsernamePass.Checked;

                ProjectInstance.DbSettions.DatabaseName        = txtOrclDbName.Text;
                ProjectInstance.DbSettions.SqlUsername         = txtOrclUsername.Text;
                ProjectInstance.DbSettions.SqlPassword         = txtOrclPassword.Text;
                ProjectInstance.DbSettions.OracleUseSysdbaRole = chkOrclUserRoleSYSDBA.Checked;

                ProjectInstance.DbSettions.DatabaseProvider = DatabaseProvider.Oracle;
            }
            else if (pagerDatabaseProvider.SelectedTab == tabPostgres)
            {
                ProjectInstance.DbSettions.ServerName   = txtPgHost.Text;
                ProjectInstance.DbSettions.DatabaseName = txtPgDbName.Text;
                ProjectInstance.DbSettions.SqlUsername  = txtPgUsername.Text;
                ProjectInstance.DbSettions.SqlPassword  = txtPgPassword.Text;
                ProjectInstance.DbSettions.SchemaName   = txtPgSchema.Text;

                ProjectInstance.DbSettions.DatabaseProvider = DatabaseProvider.Npgsql;
            }
            else if (pagerDatabaseProvider.SelectedTab == tabMySQL)
            {
                ProjectInstance.DbSettions.ServerName   = txtMysqlHost.Text;
                ProjectInstance.DbSettions.DatabaseName = txtMysqlDbName.Text;
                ProjectInstance.DbSettions.SqlUsername  = txtMysqlUsername.Text;
                ProjectInstance.DbSettions.SqlPassword  = txtMysqlPassword.Text;

                ProjectInstance.DbSettions.DatabaseProvider = DatabaseProvider.MySql;
            }


            ProjectInstance.DbSettions.SuffixForTables = txtSuffixForTables.Text;
            ProjectInstance.DbSettions.SuffixForViews  = txtSuffixForViews.Text;

            ProjectInstance.DbSettions.PrefixForTables = txtPrefixForTables.Text;
            ProjectInstance.DbSettions.PrefixForViews  = txtPrefixForViews.Text;

            ProjectInstance.DbSettions.IgnoredPrefixes.Clear();
            foreach (var item in lstIgnoredPrefixes.Items)
            {
                ProjectInstance.DbSettions.IgnoredPrefixes.Add(item.ToString());
            }

            ProjectInstance.DbSettions.IgnoredSuffixes.Clear();
            foreach (var item in lstIgnoredSuffixes.Items)
            {
                ProjectInstance.DbSettions.IgnoredSuffixes.Add(item.ToString());
            }
        }