private void UiAction_SelectNewPattern() { var codeGenFile = Common.AppVarPathMakeAbsolute(_projectDefinition.CodeGenSettings.CodeGenPatternFile); dlgOpenPattern.FileName = codeGenFile; dlgOpenPattern.InitialDirectory = Path.GetDirectoryName(codeGenFile); if (dlgOpenPattern.ShowDialog() == DialogResult.OK) { string projectFile = dlgOpenPattern.FileName; try { _patternProject = PatternProject.ReadFromFile(projectFile); var prjRelativePath = Common.AppVarPathMakeRelative(projectFile); _projectDefinition.CodeGenSettings.CodeGenPatternFile = prjRelativePath; Refresh_PatternProjectsCombo(); SetModified(true); } catch (Exception) { MessageBox.Show("Failed to open the selected pattern!", "Pattern project", MessageBoxButtons.OK, MessageBoxIcon.Stop); } Refresh_PatternsList(true); } }
private void UiAction_ChangePatternFromCombo() { if (cmbPatternProjectFile.SelectedIndex >= 0) { PatternProject prjPattern = (PatternProject)cmbPatternProjectFile.SelectedItem; // if they are same if (_patternProject.Equals(prjPattern)) { return; } if (MessageBox.Show(string.Format("Do you want to change the pattern project to '{0}'?", prjPattern.Name), "Pattern Project", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { _patternProject = prjPattern; var patFile = Common.AppVarPathMakeRelative(_patternProject.PatternFileName); _projectDefinition.CodeGenSettings.CodeGenPatternFile = patFile; SetModified(true); // reload pattern Refresh_PatternsList(true); } else { cmbPatternProjectFile.Text = _patternProject.Name; cmbPatternProjectFile.SelectedItem = _patternProject; } } }
private void Reload_ProjectDefinition(string patternProjectFile) { _patternProject = PatternProject.ReadFromFile(patternProjectFile); // realod combo Refresh_PatternProjectsCombo(); }
public Generator(ProjectDefinaton project, PatternProject pattern, DbDatabase database, ExSchemaEngine schemaEngine) { _patternProject = pattern; _projectDef = project; _database = database; _schemaEngine = schemaEngine; _optionGenerateUnselectedForeigns = false; }
private void InitializeApplication() { _projectDefinition = ProjectDefinition.LoadDefaultProject(); _patternProject = new PatternProject(); _recentProjects = new RecentProjects(mnuReopen, mnuReopenRecentFile_Click); Reload_ProjectDefinition(); // refresh presentation Refresh_Form(true); // recent projects list InitializeRecentMenu(); // Modified SetModified(false); }
private void UiAction_NewProject() { using (var frmNew = new frmProjectDetails(frmProjectDetails.FormEditMode.New)) { frmNew.ProjectInstance = ProjectDefinition.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 } } }
/// <summary> /// Reads pattern projects list /// </summary> private void Refresh_PatternProjectsList() { string patPrjExt = "*" + AppConfig.PatternProjectExtension; try { string[] projectFiles = Directory.GetFiles(AppConfig.PatternProjectsDirectory, patPrjExt, SearchOption.AllDirectories); _patternProjectsList.Clear(); foreach (var project in projectFiles) { try { // load the pattern PatternProject patPrj = PatternProject.ReadFromFile(project); // add to list _patternProjectsList.Add(patPrj); } catch (Exception) { // failed! // TODO: notify user about failed pattern } } // sort patterns list _patternProjectsList.Sort((x, y) => string.Compare(x.Name, y.Name)); //_patternProjectsList.Sort(new Comparison<PatternProject>((x, y) => string.Compare(x.Name, y.Name))); //// sort patterns list //_patternProjectsList.Sort(new Comparison<PatternProject>(delegate(PatternProject x, PatternProject y) //{ // return string.Compare(x.Name, y.Name); //})); // pattern projects Refresh_PatternProjectsCombo(); } catch (Exception ex) { throw new Exception("Failed to read pattern projects list.", ex); } }
public override void OnBack() { if (!PatternSelectionDto.IsUpdated) { return; } var newPatterns = PatternSelectionDto.Patterns .Where(ps => !Project.PatternProjects.Any(pp => pp.PatternId == ps.PatternId)) .ToArray(); var removedPatterns = Project.PatternProjects .Where(ps => !PatternSelectionDto.Patterns.Any(psd => ps.Pattern != null && psd.PatternId == ps.Pattern.PatternId)) .ToArray(); foreach (var removedPattern in removedPatterns.Where(rp => !rp.IsDefault())) { _removedPatternProjects[removedPattern.PatternProjectId] = removedPattern; } foreach (var pattern in newPatterns) { var toAdd = new PatternProject { Pattern = pattern, PatternId = pattern.PatternId, Project = Project, ProjectId = Project.ProjectId, }; Project.PatternProjects.Add(toAdd); } foreach (var pattern in removedPatterns) { var toRemove = Project.PatternProjects.Single(pp => pp.PatternId == pattern.PatternId); Project.PatternProjects.Remove(toRemove); } UpdateThreadSummary(); }
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; }