public RefreshItemFromDatabase( nHydrateModel model, nHydrate.Dsl.IDatabaseEntity modelElement, Microsoft.VisualStudio.Modeling.Store store, Microsoft.VisualStudio.Modeling.Shell.ModelingDocData docData) : this() { if (modelElement == null) throw new Exception("Model element canot be null."); _model = model; _store = store; _modelElement = modelElement; _importDomain = new nHydrate.DataImport.SqlClient.ImportDomain(); this.DatabaseConnectionControl1.FileName = Path.Combine((new FileInfo(docData.FileName)).DirectoryName, "importconnection.cache"); DatabaseConnectionControl1.LoadSettings(); //Setup new model _auditFields.Add(new SpecialField { Name = _model.CreatedByColumnName, Type = SpecialFieldTypeConstants.CreatedBy }); _auditFields.Add(new SpecialField { Name = _model.CreatedDateColumnName, Type = SpecialFieldTypeConstants.CreatedDate }); _auditFields.Add(new SpecialField { Name = _model.ModifiedByColumnName, Type = SpecialFieldTypeConstants.ModifiedBy }); _auditFields.Add(new SpecialField { Name = _model.ModifiedDateColumnName, Type = SpecialFieldTypeConstants.ModifedDate }); _auditFields.Add(new SpecialField { Name = _model.TimestampColumnName, Type = SpecialFieldTypeConstants.Timestamp }); _auditFields.Add(new SpecialField { Name = _model.TenantColumnName, Type = SpecialFieldTypeConstants.Tenant }); wizard1.FinishEnabled = false; }
private void wizard1_AfterSwitchPages(object sender, nHydrate.Wizard.Wizard.AfterSwitchPagesEventArgs e) { var oldPage = wizard1.WizardPages[e.OldIndex]; var newPage = wizard1.WizardPages[e.NewIndex]; wizard1.FinishEnabled = (newPage == pageSummary); }
public FirstPromptForm(nHydrate.Dsl.nHydrateModel model) : this() { _model = model; txtCompany.Text = _model.CompanyName; txtProject.Text = _model.ProjectName; TextBox_TextChanged(null, null); }
public ImportStaticDataForm(nHydrate.Dsl.Entity entity, Microsoft.VisualStudio.Modeling.Store store, Microsoft.VisualStudio.Modeling.Shell.ModelingDocData docData) : this() { _entity = entity; _store = store; lblWelcome.Text = "This wizard will walk you through the process of import static data from a database entity. The database entity schema must match the target function '" + entity.Name + "' in the modelRoot."; this.DatabaseConnectionControl1.FileName = Path.Combine((new FileInfo(docData.FileName)).DirectoryName, "importconnection.cache"); DatabaseConnectionControl1.LoadSettings(); }
public void Populate(nHydrate.Generator.Models.Table table) { _table = table; _table.PropertyChanged += new PropertyChangedEventHandler(_table_PropertyChanged); this.LoadControls(); #region Hook events txtCodeFacade.Leave += new EventHandler(txtCodeFacade_Leave); txtCodeFacade.Enter += new EventHandler(txtCodeFacade_Enter); txtCodeFacade.KeyDown += new KeyEventHandler(txtCodeFacade_KeyDown); txtDatabaseSchema.Leave += new EventHandler(txtDatabaseSchema_Leave); txtDatabaseSchema.Enter += new EventHandler(txtDatabaseSchema_Enter); txtDatabaseSchema.KeyDown += new KeyEventHandler(txtDatabaseSchema_KeyDown); txtDescription.Leave += new EventHandler(txtDescription_Leave); txtDescription.Enter += new EventHandler(txtDescription_Enter); txtDescription.KeyDown += new KeyEventHandler(txtDescription_KeyDown); txtName.Leave += new EventHandler(txtName_Leave); txtName.Enter += new EventHandler(txtName_Enter); txtName.KeyDown += new KeyEventHandler(txtName_KeyDown); chkAllowAuditTracking.CheckedChanged += new EventHandler(chkAllowAuditTracking_CheckedChanged); chkAllowCreateAudit.CheckedChanged += new EventHandler(chkAllowCreateAudit_CheckedChanged); chkAllowModifyAudit.CheckedChanged += new EventHandler(chkAllowModifyAudit_CheckedChanged); chkAllowTimestamp.CheckedChanged += new EventHandler(chkAllowTimestamp_CheckedChanged); chkEnforcePrimaryKey.CheckedChanged += new EventHandler(chkEnforcePrimaryKey_CheckedChanged); chkGenerated.CheckedChanged += new EventHandler(chkGenerated_CheckedChanged); chkImmutable.CheckedChanged += new EventHandler(chkImmutable_CheckedChanged); chkIsAssociative.CheckedChanged += new EventHandler(chkIsAssociative_CheckedChanged); chkIsTypeTable.CheckedChanged += new EventHandler(chkIsTypeTable_CheckedChanged); #endregion #region Setup Tooltips toolTip1.SetToolTip(txtName, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "Name")); toolTip1.SetToolTip(txtDescription, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "Description")); toolTip1.SetToolTip(txtCodeFacade, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "CodeFacade")); toolTip1.SetToolTip(txtDatabaseSchema, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "DBSchema")); toolTip1.SetToolTip(chkAllowAuditTracking, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "AllowAuditTracking")); toolTip1.SetToolTip(chkAllowCreateAudit, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "AllowCreateAudit")); toolTip1.SetToolTip(chkAllowModifyAudit, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "AllowModifiedAudit")); toolTip1.SetToolTip(chkAllowTimestamp, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "AllowTimestamp")); toolTip1.SetToolTip(chkEnforcePrimaryKey, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "EnforcePrimaryKey")); toolTip1.SetToolTip(chkGenerated, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "Generated")); toolTip1.SetToolTip(chkImmutable, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "Immutable")); toolTip1.SetToolTip(chkIsAssociative, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "AssociativeTable")); toolTip1.SetToolTip(chkIsTypeTable, ReflectionHelper.GetPropertyAttributeDescriptionValue(_table, "IsTypeTable")); #endregion }
public FindWindowPopupOptionsForm(nHydrate.DslPackage.Forms.FindWindowControl.Settings settings, nHydrate.DslPackage.Forms.FindWindowControl.RefreshDelegate myMethod) : this() { _myMethod = myMethod; _settings = settings; SetupForm(); this.KeyUp += FindWindowPopupOptionsForm_KeyUp; this.Deactivate += FindWindowPopupOptionsForm_Deactivate; chkEntity.CheckedChanged += CheckedChanged; chkField.CheckedChanged += CheckedChanged; chkParameter.CheckedChanged += CheckedChanged; chkStoredProc.CheckedChanged += CheckedChanged; chkView.CheckedChanged += CheckedChanged; chkFunction.CheckedChanged += CheckedChanged; }
public void Populate(nHydrate.Generator.Models.Database database) { _database = database; _database.PropertyChanged += new PropertyChangedEventHandler(_database_PropertyChanged); this.LoadControls(); #region Hook events txtCreatedByColumn.Leave += new EventHandler(txtCreatedByColumn_Leave); txtCreatedByColumn.Enter += new EventHandler(txtCreatedByColumn_Enter); txtCreatedByColumn.KeyDown += new KeyEventHandler(txtCreatedByColumn_KeyDown); txtCreatedDateColumn.Leave += new EventHandler(txtCreatedDateColumn_Leave); txtCreatedDateColumn.Enter += new EventHandler(txtCreatedDateColumn_Enter); txtCreatedDateColumn.KeyDown += new KeyEventHandler(txtCreatedDateColumn_KeyDown); txtGrantExec.Leave += new EventHandler(txtGrantExec_Leave); txtGrantExec.Enter += new EventHandler(txtGrantExec_Enter); txtGrantExec.KeyDown += new KeyEventHandler(txtGrantExec_KeyDown); txtModifiedDateColumn.Leave += new EventHandler(txtModifiedDateColumn_Leave); txtModifiedDateColumn.Enter += new EventHandler(txtModifiedDateColumn_Enter); txtModifiedDateColumn.KeyDown += new KeyEventHandler(txtModifiedDateColumn_KeyDown); txtModifiedByColumn.Leave += new EventHandler(txtModifiedByColumn_Leave); txtModifiedByColumn.Enter += new EventHandler(txtModifiedByColumn_Enter); txtModifiedByColumn.KeyDown += new KeyEventHandler(txtModifiedByColumn_KeyDown); txtTimestampColumn.Leave += new EventHandler(txtTimestampColumn_Leave); txtTimestampColumn.Enter += new EventHandler(txtTimestampColumn_Enter); txtTimestampColumn.KeyDown += new KeyEventHandler(txtTimestampColumn_KeyDown); #endregion #region Setup Tooltips toolTip1.SetToolTip(txtCreatedByColumn, ReflectionHelper.GetPropertyAttributeDescriptionValue(_database, "CreatedByColumnName")); toolTip1.SetToolTip(txtCreatedDateColumn, ReflectionHelper.GetPropertyAttributeDescriptionValue(_database, "CreatedDateColumnName")); toolTip1.SetToolTip(txtGrantExec, ReflectionHelper.GetPropertyAttributeDescriptionValue(_database, "GrantExecUser")); toolTip1.SetToolTip(txtModifiedByColumn, ReflectionHelper.GetPropertyAttributeDescriptionValue(_database, "ModifiedByColumnName")); toolTip1.SetToolTip(txtModifiedDateColumn, ReflectionHelper.GetPropertyAttributeDescriptionValue(_database, "ModifiedDateColumnName")); toolTip1.SetToolTip(txtTimestampColumn, ReflectionHelper.GetPropertyAttributeDescriptionValue(_database, "TimestampColumnName")); #endregion }
public EntityAuditMappings(nHydrate.Dsl.nHydrateModel model) : this() { _model = model; #region Load Tree _isLoading = true; foreach (var item in model.Entities.OrderBy(x => x.Name)) { var n = new TreeNode() { Text = item.Name, Tag = item }; tvwItem.Nodes.Add(n); _nodeCache.Add(item, n); n.Nodes.Add(new TreeNode() { Text = "Create Audit", Tag = "C", Checked = item.AllowCreateAudit }); n.Nodes.Add(new TreeNode() { Text = "Modify Audit", Tag = "M", Checked = item.AllowModifyAudit }); n.Nodes.Add(new TreeNode() { Text = "Concurrency", Tag = "T", Checked = item.AllowTimestamp }); n.Checked = item.AllowCreateAudit || item.AllowModifyAudit || item.AllowTimestamp; } _isLoading = false; #endregion }
public ImportDatabaseForm( nHydrateModel model, Microsoft.VisualStudio.Modeling.Store store, Microsoft.VisualStudio.Modeling.Diagrams.Diagram diagram, nHydrate.DataImport.Database currentDatabase, Microsoft.VisualStudio.Modeling.Shell.ModelingDocData docData) : this() { _model = model; _store = store; _diagram = diagram; _docData = docData; this.CurrentDatabase = currentDatabase; this.DatabaseConnectionControl1.FileName = Path.Combine((new FileInfo(docData.FileName)).DirectoryName, "importconnection.cache"); tvwAdd.AfterCheck += new TreeViewEventHandler(treeView1_AfterCheck); tvwRefresh.AfterCheck += new TreeViewEventHandler(treeView1_AfterCheck); tvwDelete.AfterCheck += new TreeViewEventHandler(treeView1_AfterCheck); //tvwAdd.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect); //tvwRefresh.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect); //tvwDelete.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect); wizard1.BeforeSwitchPages += new nHydrate.Wizard.Wizard.BeforeSwitchPagesEventHandler(wizard1_BeforeSwitchPages); wizard1.AfterSwitchPages += new nHydrate.Wizard.Wizard.AfterSwitchPagesEventHandler(wizard1_AfterSwitchPages); wizard1.Finish += new EventHandler(wizard1_Finish); wizard1.FinishEnabled = false; chkSettingPK.CheckedChanged += new EventHandler(chkSettingPK_CheckedChanged); cmdTestConnection.Click += new EventHandler(cmdTestConnection_Click); this.Settings = new ImportModelSettings(); this.Settings.OverridePrimaryKey = chkSettingPK.Checked; DatabaseConnectionControl1.LoadSettings(); cboModule.Items.Add("(Choose One)"); model.Modules.ForEach(x => cboModule.Items.Add(x.Name)); cboModule.SelectedIndex = 0; cboModule.Enabled = model.UseModules; chkMergeModule.Visible = model.UseModules; EnableButtons(); }
public void Populate(nHydrate.Generator.Models.Column column) { _column = column; _column.PropertyChanged += new PropertyChangedEventHandler(_column_PropertyChanged); this.LoadControls(); #region Hook events txtCodeFacade.Leave += new EventHandler(txtCodeFacade_Leave); txtCodeFacade.Enter += new EventHandler(txtCodeFacade_Enter); txtCodeFacade.KeyDown += new KeyEventHandler(txtCodeFacade_KeyDown); txtCollate.Leave += new EventHandler(txtCollate_Leave); txtCollate.Enter += new EventHandler(txtCollate_Enter); txtCollate.KeyDown += new KeyEventHandler(txtCollate_KeyDown); txtDefault.Leave += new EventHandler(txtDefault_Leave); txtDefault.Enter += new EventHandler(txtDefault_Enter); txtDefault.KeyDown += new KeyEventHandler(txtDefault_KeyDown); txtDescription.Leave += new EventHandler(txtDescription_Leave); txtDescription.Enter += new EventHandler(txtDescription_Enter); txtDescription.KeyDown += new KeyEventHandler(txtDescription_KeyDown); txtFormula.Leave += new EventHandler(txtFormula_Leave); txtFormula.Enter += new EventHandler(txtFormula_Enter); txtFormula.KeyDown += new KeyEventHandler(txtFormula_KeyDown); txtName.Leave += new EventHandler(txtName_Leave); txtName.Enter += new EventHandler(txtName_Enter); txtName.KeyDown += new KeyEventHandler(txtName_KeyDown); txtMax.Leave += new EventHandler(txtMax_Leave); txtMax.Enter += new EventHandler(txtMax_Enter); txtMax.KeyDown += new KeyEventHandler(txtMax_KeyDown); txtMin.Leave += new EventHandler(txtMin_Leave); txtMin.Enter += new EventHandler(txtMin_Enter); txtMin.KeyDown += new KeyEventHandler(txtMin_KeyDown); chkComputedColumn.CheckedChanged += new EventHandler(chkComputedColumn_CheckedChanged); chkGenerated.CheckedChanged += new EventHandler(chkGenerated_CheckedChanged); chkIsIndexed.CheckedChanged += new EventHandler(chkIsIndexed_CheckedChanged); chkIsNull.CheckedChanged += new EventHandler(chkIsNull_CheckedChanged); chkIsPrimaryKey.CheckedChanged += new EventHandler(chkIsPrimaryKey_CheckedChanged); chkIsSearchable.CheckedChanged += new EventHandler(chkIsSearchable_CheckedChanged); chkIsUnique.CheckedChanged += new EventHandler(chkIsUnique_CheckedChanged); #endregion #region Setup Tooltips toolTip1.SetToolTip(txtCodeFacade, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "CodeFacade")); toolTip1.SetToolTip(txtCollate, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Collate")); toolTip1.SetToolTip(txtDefault, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Default")); toolTip1.SetToolTip(txtDescription, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Description")); toolTip1.SetToolTip(txtFormula, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Formula")); toolTip1.SetToolTip(txtMax, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Min")); toolTip1.SetToolTip(txtMin, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Max")); toolTip1.SetToolTip(txtName, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Name")); toolTip1.SetToolTip(chkComputedColumn, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "ComputedColumn")); toolTip1.SetToolTip(chkGenerated, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "Generated")); toolTip1.SetToolTip(chkIsIndexed, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "IsIndexed")); toolTip1.SetToolTip(chkIsNull, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "AllowNull")); toolTip1.SetToolTip(chkIsPrimaryKey, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "PrimaryKey")); toolTip1.SetToolTip(chkIsSearchable, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "IsSearchable")); toolTip1.SetToolTip(chkIsUnique, ReflectionHelper.GetPropertyAttributeDescriptionValue(_column, "IsUnique")); #endregion }
private void RemoveAllNodes(TreeNodeCollection nodeList, nHydrate.DataImport.ImportStateConstants excludeType) { var delList = new List<TreeNode>(); foreach (TreeNode node in nodeList) { if (((DataTreeItem)node.Tag).State != excludeType) { delList.Add(node); } RemoveAllNodes(node.Nodes, excludeType); } foreach (var node in delList) { this.tvwAdd.Nodes.Remove(node); } }
private bool ChooseGenerators( nHydrateModel model, List<nHydrateGeneratorProject> genList, List<Type> generatorTypeList, List<Type> excludeList, nHydrate.Generator.Common.GeneratorFramework.GeneratorHelper genHelper, List<string> generateModuleList) { var cacheFile = new nHydrate.Generator.Common.ModelCacheFile(genList.First()); if (cacheFile.ModelerVersion > System.Reflection.Assembly.GetExecutingAssembly().GetName().Version) { if (MessageBox.Show("This model schema was last generated with a newer modeler version (" + cacheFile.ModelerVersion + "). Your current version is " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version + ". Generating with an older modeler may cause many files to change unexpectedly. Do you wish to proceed with the generation?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) return false; } //Show generator list var allModules = model.Modules.Select(x => x.Name).ToList(); if (!model.UseModules) allModules.Clear(); using (var F = new GenerateSettings(genList.First(), generatorTypeList, null, allModules)) { if (F.ShowDialog() != DialogResult.OK) return false; excludeList.AddRange(F.ExcludeList); generateModuleList.AddRange(F.SelectedModules); } //If we are using modules then filter on the selected ones if (model.UseModules) { genList = genList.Where(x => generateModuleList.Contains((x.Model as nHydrate.Generator.Models.ModelRoot).ModuleName)).ToList(); } return true; }
private void g_ProjectItemGenerated(object sender, nHydrate.Generator.Common.EventArgs.ProjectItemGeneratedEventArgs e) { try { if (e.FileState == EnvDTEHelper.FileStateConstants.Skipped) this.FilesSkipped++; if (e.FileState == EnvDTEHelper.FileStateConstants.Success) this.FilesSuccess++; if (e.FileState == EnvDTEHelper.FileStateConstants.Failed) this.FilesFailed++; this.GeneratedFileList.Add(e); _processedFileCount++; var progress = -1; var mainText = string.Empty; var timeDisplay = string.Empty; if (_totalFileCount > 0) { progress = (_processedFileCount * 100) / _totalFileCount; if (progress > 100) progress = 100; var totalDisplay = Math.Max(_processedFileCount, _totalFileCount); mainText = "Generating " + _processedFileCount.ToString("###,###,###,##0") + " of " + totalDisplay.ToString("###,###,###,##0") + "..."; if (progress > 0) { var elapsedTime = DateTime.Now.Subtract(_startTime).TotalSeconds; var totalTime = elapsedTime * (1 / (progress / 100.0)); timeDisplay = "(" + Extensions.ToElapsedTimeString(elapsedTime) + " of " + Extensions.ToElapsedTimeString(totalTime) + ")"; } } ProgressHelper.UpdateSubText(mainText, e.FullName, progress, timeDisplay); } catch (Exception ex) { //TODO } }
private void wizard1_AfterSwitchPages(object sender, nHydrate.Wizard.Wizard.AfterSwitchPagesEventArgs e) { wizard1.FinishEnabled = (wizard1.SelectedIndex == wizard1.WizardPages.Count - 1); }
private static void UpdateTables( nHydrate.Generator.Models.Database newDatabase, nHydrate.Generator.Models.Database oldDatabase, List<string> selectedTables, ImportModelSettings settings) { #region Add new tables foreach (Table t in newDatabase.Tables) { if (!oldDatabase.Tables.Contains(t.Name) && selectedTables.Contains(t.Name.ToLower())) { var newT = oldDatabase.Tables.Add(t.Name); var doc = new XmlDocument(); var tableId = newT.Id; doc.LoadXml("<a></a>"); t.XmlAppend(doc.DocumentElement); newT.XmlLoad(doc.DocumentElement); newT.ResetId(tableId); newT.Columns.Clear(); foreach (Reference r in t.Columns) { var newCol = oldDatabase.Columns.Add(((Column)r.Object).Name); var colId = newCol.Id; var doc3 = new XmlDocument(); doc3.LoadXml("<a></a>"); ((Column)r.Object).XmlAppend(doc3.DocumentElement); newCol.XmlLoad(doc3.DocumentElement); newCol.ResetId(colId); newCol.ParentTableRef = newT.CreateRef(); var newRef = new Reference(newT.Root); newRef.Ref = newCol.Id; newRef.RefType = ReferenceType.Column; newT.Columns.Add(newRef); } newT.Relationships.Clear(); } } #endregion #region Update existing tables foreach (var t in oldDatabase.Tables.OrderBy(x => x.Name)) { if (selectedTables.Contains(t.Name.ToLower())) { var newT = newDatabase.Tables[t.Name]; if (newT != null) { #region Update matching columns var delRefList = new List<Reference>(); foreach (Reference r in t.Columns) { var oldCol = (Column)r.Object; var newColRef = newT.Columns.FindByName(oldCol.Name); Column newCol = null; if (newColRef != null) newCol = (Column)newColRef.Object; var doUpdate = ((newCol != null) && (oldCol.CorePropertiesHash != newCol.CorePropertiesHash)); if (doUpdate && settings.OverridePrimaryKey) doUpdate = (oldCol.CorePropertiesHashNoPK != newCol.CorePropertiesHashNoPK); if (doUpdate) { oldCol.CancelUIEvents = true; var colId = oldCol.Id; var colKey = oldCol.Key; var isPrimaryKey = oldCol.PrimaryKey; newCol.CodeFacade = oldCol.CodeFacade; //newCol.ResetId(colId); //newCol.SetKey(colKey); var doc = new XmlDocument(); doc.LoadXml("<a></a>"); newCol.XmlAppend(doc.DocumentElement); oldCol.XmlLoad(doc.DocumentElement); oldCol.ResetId(colId); oldCol.SetKey(colKey); //oldCol.PrimaryKey = isPrimaryKey; oldCol.ParentTableRef = newDatabase.Tables[(newCol.ParentTableRef.Object as Table).Name].CreateRef(); oldCol.CancelUIEvents = false; } else if (newCol == null) { delRefList.Add(r); } } //Remove deleted fields foreach (var r in delRefList) { t.Columns.Remove(r); } #endregion #region Add new columns foreach (var c in newT.GetColumns()) { if (t.GetColumns().FirstOrDefault(x => x.Name == c.Name) == null) { var newCol = oldDatabase.Columns.Add(c.Name); var colId = newCol.Id; var doc = new XmlDocument(); doc.LoadXml("<a></a>"); c.XmlAppend(doc.DocumentElement); newCol.XmlLoad(doc.DocumentElement); newCol.ResetId(colId); newCol.ParentTableRef = t.CreateRef(); var newRef = new Reference(t.Root); newRef.Ref = newCol.Id; newRef.RefType = ReferenceType.Column; t.Columns.Add(newRef); } } #endregion #region Delete old columns var delColumnList = new List<Column>(); foreach (Reference r in t.Columns) { if (newT.GetColumns().FirstOrDefault(x => x.Name == ((Column)r.Object).Name) == null) { delColumnList.Add((Column)r.Object); } } foreach (var c in delColumnList) { oldDatabase.Columns.Remove(c); } #endregion #region Update table properties t.CancelUIEvents = true; t.Description = newT.Description; t.AssociativeTable = newT.AssociativeTable; t.Generated = newT.Generated; t.HasHistory = newT.HasHistory; //t.AllowModifiedAudit = newT.AllowModifiedAudit; //t.AllowCreateAudit = newT.AllowCreateAudit; //t.AllowTimestamp = newT.AllowTimestamp; t.TypedTable = newT.TypedTable; t.CreateMetaData = newT.CreateMetaData; t.FullIndexSearch = newT.FullIndexSearch; t.IsMetaData = newT.IsMetaData; t.IsMetaDataDefinition = newT.IsMetaDataDefinition; t.IsMetaDataMaster = newT.IsMetaDataMaster; t.DBSchema = newT.DBSchema; t.CancelUIEvents = false; #endregion } } } #endregion #region Delete removed tables var delTableList = new List<Table>(); foreach (Table t in oldDatabase.Tables) { if (selectedTables.Contains(t.Name.ToLower())) { if (!newDatabase.Tables.Contains(t.Name)) delTableList.Add(t); } } foreach (var t in delTableList) { oldDatabase.Tables.Remove(t); } #endregion #region DEBUG foreach (var t in oldDatabase.Tables.OrderBy(x => x.Name)) { #region Columns foreach (var c in t.GetColumns()) { if (c.ParentTableRef == null) { System.Diagnostics.Debug.Write(""); } else if (c.ParentTableRef.Object == null) { System.Diagnostics.Debug.Write(""); } } #endregion #region Relations foreach (Relation r in t.GetRelations()) { if (r.ChildTableRef == null) { System.Diagnostics.Debug.Write(""); } else if (r.ChildTableRef.Object == null) { System.Diagnostics.Debug.Write(""); } if (r.ParentTableRef == null) { System.Diagnostics.Debug.Write(""); } else if (r.ParentTableRef.Object == null) { System.Diagnostics.Debug.Write(""); } } #endregion } #endregion }
private static SqlDbType GetSQLDataType(nHydrate.DataImport.SqlNativeTypes nativeType) { switch (nativeType) { case SqlNativeTypes.bigint: return SqlDbType.BigInt; case SqlNativeTypes.binary: return SqlDbType.Binary; case SqlNativeTypes.bit: return SqlDbType.Bit; case SqlNativeTypes.@char: return SqlDbType.Char; case SqlNativeTypes.date: return SqlDbType.Date; case SqlNativeTypes.datetime: return SqlDbType.DateTime; case SqlNativeTypes.datetime2: return SqlDbType.DateTime2; case SqlNativeTypes.datetimeoffset: return SqlDbType.DateTimeOffset; case SqlNativeTypes.@decimal: return SqlDbType.Decimal; case SqlNativeTypes.@float: return SqlDbType.Float; //SqlNativeTypes.geography //SqlNativeTypes.geometry //SqlNativeTypes.hierarchyid case SqlNativeTypes.image: return SqlDbType.Image; case SqlNativeTypes.@int: return SqlDbType.Int; case SqlNativeTypes.money: return SqlDbType.Money; case SqlNativeTypes.nchar: return SqlDbType.NChar; case SqlNativeTypes.ntext: return SqlDbType.NText; case SqlNativeTypes.numeric: return SqlDbType.Decimal; case SqlNativeTypes.nvarchar: return SqlDbType.NVarChar; case SqlNativeTypes.real: return SqlDbType.Real; case SqlNativeTypes.smalldatetime: return SqlDbType.SmallDateTime; case SqlNativeTypes.smallint: return SqlDbType.SmallInt; case SqlNativeTypes.smallmoney: return SqlDbType.SmallMoney; case SqlNativeTypes.sql_variant: return SqlDbType.Structured; //SqlNativeTypes.sysname case SqlNativeTypes.text: return SqlDbType.Text; case SqlNativeTypes.time: return SqlDbType.Time; case SqlNativeTypes.timestamp: return SqlDbType.Timestamp; case SqlNativeTypes.tinyint: return SqlDbType.TinyInt; //case SqlNativeTypes.: return SqlDbType.Udt; case SqlNativeTypes.uniqueidentifier: return SqlDbType.UniqueIdentifier; case SqlNativeTypes.varbinary: return SqlDbType.VarBinary; case SqlNativeTypes.varchar: return SqlDbType.VarChar; //case SqlNativeTypes.: return SqlDbType.Variant; case SqlNativeTypes.xml: return SqlDbType.Xml; default: throw new Exception("Unknown native SQL type '" + nativeType.ToString() + "'!"); } }
private void wizard1_BeforeSwitchPages(object sender, nHydrate.Wizard.Wizard.BeforeSwitchPagesEventArgs e) { var oldPage = wizard1.WizardPages[e.OldIndex]; var newPage = wizard1.WizardPages[e.NewIndex]; var importDomain = new nHydrate.DataImport.SqlClient.ImportDomain(); var databaseHelper = importDomain.DatabaseDomain; if ((oldPage == pageImport) && (e.NewIndex > e.OldIndex)) { //Test Connection var connectString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var valid = databaseHelper.TestConnectionString(connectString); if (!valid) { MessageBox.Show("The information does not describe a valid connection string.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Cancel = true; return; } //Load the dropdown var auditFields = new List<string>(); var list = importDomain.GetEntityList(connectString); cboTable.DataSource = list; cboTable.SelectedItem = list.FirstOrDefault(x => x.ToLower() == _entity.Name.ToLower()); } else if ((oldPage == pageChooseTable) && (e.NewIndex > e.OldIndex)) { //Verify that the table schema matches var connectionString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var auditFields = new List<SpecialField>(); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.CreatedByColumnName, Type = SpecialFieldTypeConstants.CreatedBy }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.CreatedDateColumnName, Type = SpecialFieldTypeConstants.CreatedDate }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.ModifiedByColumnName, Type = SpecialFieldTypeConstants.ModifiedBy }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.ModifiedDateColumnName, Type = SpecialFieldTypeConstants.ModifedDate }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.TimestampColumnName, Type = SpecialFieldTypeConstants.Timestamp }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.TenantColumnName, Type = SpecialFieldTypeConstants.Tenant }); var dsValues = databaseHelper.GetStaticData(connectionString, importDomain.GetEntity(connectionString, (string)cboTable.SelectedValue, auditFields)); this.LoadData(dsValues); } }
private void diagram_ShapeDoubleClick(object sender, nHydrate.Dsl.ModelElementEventArgs e) { var diagram = (((Microsoft.VisualStudio.Modeling.Shell.SingleDiagramDocView)(this.DocViews.First())).CurrentDiagram); var shape = e.Shape; if (shape is EntityAssociationConnector) { if (!(shape.Diagram as nHydrateDiagram).IsLoading) { var F = new nHydrate.DslPackage.Forms.RelationshipDialog(shape.Diagram.ModelElement as nHydrateModel, shape.Store, (shape as EntityAssociationConnector).ModelElement as EntityHasEntities); F.ShowDialog(); } } else if (shape is EntityViewAssociationConnector) { if (!(shape.Diagram as nHydrateDiagram).IsLoading) { var F = new nHydrate.DslPackage.Forms.RelationshipViewDialog(shape.Diagram.ModelElement as nHydrateModel, shape.Store, (shape as EntityViewAssociationConnector).ModelElement as EntityHasViews); F.ShowDialog(); } } }
public void AddMessage(nHydrate.Generator.Common.GeneratorFramework.Message message) { var newItem = new ListViewItem(); newItem.Tag = message; //Image if (message.MessageType == MessageTypeConstants.Warning) newItem.ImageIndex = 0; else if (message.MessageType == MessageTypeConstants.Error) newItem.ImageIndex = 1; //Error Number newItem.SubItems.Add((this.Items.Count + 1).ToString()); //Message newItem.SubItems.Add(message.Text); //Type Column if(message.Controller != null) { var typeName = message.Controller.Object.GetType().ToString(); var typeNameArr = typeName.Split('.'); typeName = typeNameArr[typeNameArr.Length - 1]; newItem.SubItems.Add(typeName); } else { newItem.SubItems.Add(string.Empty); } //Add to the list this.Items.Add(newItem); }
private void diagram_ShapeConfiguring(object sender, nHydrate.Dsl.ModelElementEventArgs e) { if (this.IsImporting) return; var diagram = (((Microsoft.VisualStudio.Modeling.Shell.SingleDiagramDocView)(this.DocViews.First())).CurrentDiagram); var shape = e.Shape; if (shape is EntityAssociationConnector) { var F = new nHydrate.DslPackage.Forms.RelationshipDialog(shape.Diagram.ModelElement as nHydrateModel, shape.Store, (shape as EntityAssociationConnector).ModelElement as EntityHasEntities); if (F.ShowDialog() != System.Windows.Forms.DialogResult.OK) { var relation = shape.ModelElement as EntityHasEntities; relation.ParentEntity.ChildEntities.Remove(relation.ParentEntity.ChildEntities.LastOrDefault()); } } else if (shape is EntityViewAssociationConnector) { var F = new nHydrate.DslPackage.Forms.RelationshipViewDialog(shape.Diagram.ModelElement as nHydrateModel, shape.Store, (shape as EntityViewAssociationConnector).ModelElement as EntityHasViews); if (F.ShowDialog() != System.Windows.Forms.DialogResult.OK) { var relation = shape.ModelElement as EntityHasViews; relation.ParentEntity.ChildViews.Remove(relation.ParentEntity.ChildViews.LastOrDefault()); } } }
private static void UpdateViews( nHydrate.Generator.Models.Database newDatabase, nHydrate.Generator.Models.Database oldDatabase, List<string> selectedViews, ImportModelSettings settings) { #region Update existing items foreach (CustomView t in oldDatabase.CustomViews) { if (selectedViews.Contains(t.Name.ToLower())) { var newV = newDatabase.CustomViews[t.Name]; if (newV != null) { #region Update matching columns var delRefList = new List<Reference>(); foreach (Reference r in t.Columns) { var oldCol = (CustomViewColumn)r.Object; var newColRef = newV.Columns.FindByName(oldCol.Name); CustomViewColumn newCol = null; if (newColRef != null) newCol = (CustomViewColumn)newColRef.Object; var doUpdate = ((newCol != null) && (oldCol.CorePropertiesHash != newCol.CorePropertiesHash)); if (doUpdate && settings.OverridePrimaryKey) doUpdate = (oldCol.CorePropertiesHashNoPK != newCol.CorePropertiesHashNoPK); if (doUpdate) { oldCol.CancelUIEvents = true; var colId = oldCol.Id; var colKey = oldCol.Key; newCol.CodeFacade = oldCol.CodeFacade; //newCol.ResetId(colId); //newCol.SetKey(colKey); var doc = new XmlDocument(); doc.LoadXml("<a></a>"); newCol.XmlAppend(doc.DocumentElement); oldCol.XmlLoad(doc.DocumentElement); oldCol.ResetId(colId); oldCol.SetKey(colKey); oldCol.CancelUIEvents = false; } else if (newCol == null) { delRefList.Add(r); } } //Remove deleted fields foreach (var r in delRefList) { t.Columns.Remove(r); } #endregion #region Add new columns foreach (Reference r in newV.Columns) { var c = (CustomViewColumn)r.Object; if (t.GetColumns().FirstOrDefault(x => x.Name == c.Name) == null) { var newCol = oldDatabase.CustomViewColumns.Add(c.Name); var colId = newCol.Id; var doc = new XmlDocument(); doc.LoadXml("<a></a>"); c.XmlAppend(doc.DocumentElement); newCol.XmlLoad(doc.DocumentElement); newCol.ResetId(colId); newCol.ParentViewRef = t.CreateRef(); var newRef = new Reference(t.Root); newRef.Ref = newCol.Id; newRef.RefType = ReferenceType.CustomViewColumn; t.Columns.Add(newRef); } } #endregion #region Delete old columns var delColumnList = new List<CustomViewColumn>(); foreach (Reference r in t.Columns) { if (newV.GetColumns().FirstOrDefault(x => x.Name == ((CustomViewColumn)r.Object).Name) == null) { delColumnList.Add((CustomViewColumn)r.Object); } } foreach (var c in delColumnList) { oldDatabase.CustomViewColumns.Remove(c); } #endregion #region Update item properties t.CancelUIEvents = true; t.Description = newV.Description; t.Generated = newV.Generated; t.SQL = newV.SQL; t.CancelUIEvents = false; #endregion } } } #endregion #region Add new items foreach (CustomView t in newDatabase.CustomViews) { if (selectedViews.Contains(t.Name.ToLower())) { if (!oldDatabase.CustomViews.Contains(t.Name)) { var newV = oldDatabase.CustomViews.Add(t.Name); var doc = new XmlDocument(); var tableId = newV.Id; doc.LoadXml("<a></a>"); t.XmlAppend(doc.DocumentElement); newV.XmlLoad(doc.DocumentElement); newV.ResetId(tableId); newV.Columns.Clear(); foreach (Reference r in t.Columns) { var newCol = oldDatabase.CustomViewColumns.Add(((CustomViewColumn)r.Object).Name); var colId = newCol.Id; var doc3 = new XmlDocument(); doc3.LoadXml("<a></a>"); ((CustomViewColumn)r.Object).XmlAppend(doc3.DocumentElement); newCol.XmlLoad(doc3.DocumentElement); newCol.ResetId(colId); newCol.ParentViewRef = newV.CreateRef(); var newRef = new Reference(newV.Root); newRef.Ref = newCol.Id; newRef.RefType = ReferenceType.CustomViewColumn; newV.Columns.Add(newRef); } } } } #endregion #region Delete removed items var delViewList = new List<CustomView>(); foreach (CustomView t in oldDatabase.CustomViews) { if (selectedViews.Contains(t.Name.ToLower())) { if (!newDatabase.CustomViews.Contains(t.Name)) delViewList.Add(t); } } foreach (var t in delViewList) { oldDatabase.CustomViews.Remove(t); } #endregion }
private static void UpdateRelations( nHydrate.Generator.Models.Database newDatabase, nHydrate.Generator.Models.Database oldDatabase) { foreach (Relation relation in newDatabase.Relations) { var pTable = oldDatabase.Tables[relation.ParentTable.Name]; var cTable = oldDatabase.Tables[relation.ChildTable.Name]; if (pTable != null && cTable != null) { var newRelation = oldDatabase.Relations.Add(); newRelation.RoleName = relation.RoleName; newRelation.ParentTableRef = pTable.CreateRef(); newRelation.ChildTableRef = cTable.CreateRef(); foreach (ColumnRelationship cr in relation.ColumnRelationships) { var pColumn = pTable.GetColumns().FirstOrDefault(x => x.Name == cr.ParentColumn.Name); var cColumn = cTable.GetColumns().FirstOrDefault(x => x.Name == cr.ChildColumn.Name); if (pColumn != null && cColumn != null) { var newCR = new ColumnRelationship(oldDatabase.Root); newCR.ParentColumnRef = pColumn.CreateRef(); newCR.ChildColumnRef = cColumn.CreateRef(); newRelation.ColumnRelationships.Add(newCR); } } pTable.Relationships.Add(newRelation.CreateRef()); } } }
public DataTreeItem(string name, nHydrate.DataImport.ImportStateConstants state) : this(name) { this.State = state; }
internal static bool IsValidSQLDataType(nHydrate.DataImport.SqlNativeTypes nativeType) { switch (nativeType) { case SqlNativeTypes.bigint: case SqlNativeTypes.binary: case SqlNativeTypes.bit: case SqlNativeTypes.@char: case SqlNativeTypes.date: case SqlNativeTypes.datetime: case SqlNativeTypes.datetime2: case SqlNativeTypes.datetimeoffset: case SqlNativeTypes.@decimal: case SqlNativeTypes.@float: //SqlNativeTypes.geography //SqlNativeTypes.geometry //SqlNativeTypes.hierarchyid case SqlNativeTypes.image: case SqlNativeTypes.@int: case SqlNativeTypes.money: case SqlNativeTypes.nchar: case SqlNativeTypes.ntext: case SqlNativeTypes.numeric: case SqlNativeTypes.nvarchar: case SqlNativeTypes.real: case SqlNativeTypes.smalldatetime: case SqlNativeTypes.smallint: case SqlNativeTypes.smallmoney: case SqlNativeTypes.sql_variant: //SqlNativeTypes.sysname case SqlNativeTypes.text: case SqlNativeTypes.time: case SqlNativeTypes.timestamp: case SqlNativeTypes.tinyint: //case SqlNativeTypes.: case SqlNativeTypes.uniqueidentifier: case SqlNativeTypes.varbinary: case SqlNativeTypes.varchar: //case SqlNativeTypes.: case SqlNativeTypes.xml: return true; default: return false; } }
//private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) //{ // var d = e.Node.Tag as DataTreeItem; // if (d == null) txtChanged.Text = ""; // else txtChanged.Text = d.GetChangeText(); //} private void wizard1_BeforeSwitchPages(object sender, nHydrate.Wizard.Wizard.BeforeSwitchPagesEventArgs e) { if (wizard1.WizardPages[e.OldIndex] == pageConnection) { this.Cursor = Cursors.WaitCursor; try { DatabaseConnectionControl1.PersistSettings(); var connectionString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var schemaModelHelper = new nHydrate.DataImport.SqlClient.SchemaModelHelper(); if (!schemaModelHelper.IsValidConnectionString(connectionString)) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This not a valid connection string!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Setup new model var project = new nHydrate.DataImport.Database(); var auditFields = new List<SpecialField>(); auditFields.Add(new SpecialField { Name = _model.CreatedByColumnName, Type = SpecialFieldTypeConstants.CreatedBy }); auditFields.Add(new SpecialField { Name = _model.CreatedDateColumnName, Type = SpecialFieldTypeConstants.CreatedDate }); auditFields.Add(new SpecialField { Name = _model.ModifiedByColumnName, Type = SpecialFieldTypeConstants.ModifiedBy }); auditFields.Add(new SpecialField { Name = _model.ModifiedDateColumnName, Type = SpecialFieldTypeConstants.ModifedDate }); auditFields.Add(new SpecialField { Name = _model.TimestampColumnName, Type = SpecialFieldTypeConstants.Timestamp }); auditFields.Add(new SpecialField { Name = _model.TenantColumnName, Type = SpecialFieldTypeConstants.Tenant }); var pkey = ProgressHelper.ProgressingStarted("Importing...", true); try { var importDomain = new nHydrate.DataImport.SqlClient.ImportDomain(); this.NewDatabase = importDomain.Import(connectionString, auditFields); this.NewDatabase.CleanUp(); this.NewDatabase.SetupIdMap(this.CurrentDatabase); //nHydrate.DataImport.ImportDomain.ReMapIDs(this.CurrentDatabase, this.NewDatabase); //Remove tenant views NewDatabase.ViewList.Remove(x => x.Name.ToLower().StartsWith(_model.TenantPrefix.ToLower() + "_")); var errorCount = NewDatabase.StoredProcList.Count(x => x.InError); NewDatabase.StoredProcList.Remove(x => x.InError); //Load the tree this.Populate(); ProgressHelper.ProgressingComplete(pkey); if (errorCount > 0) MessageBox.Show("There were " + errorCount + " stored procedure(s) that could not be imported.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception ex) { throw; } finally { ProgressHelper.ProgressingComplete(pkey); } if (!this.AreChanges()) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This modelRoot is up-to-date. There are no changes to refresh.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { throw; } finally { this.Cursor = Cursors.Default; } } else if (wizard1.WizardPages[e.OldIndex] == pageConnection && wizard1.WizardPages[e.NewIndex] == pageEntities) { } else if (wizard1.WizardPages[e.OldIndex] == pageEntities && wizard1.WizardPages[e.NewIndex] == pageSummary) { //If there are no entities selected and relations are still checked then prompt var nodeCheckedList = tvwAdd.Nodes[0].Nodes.AsEnumerable<TreeNode>().Where(x => x.Checked).ToList(); nodeCheckedList.AddRange(tvwRefresh.Nodes[0].Nodes.AsEnumerable<TreeNode>().Where(x => x.Checked).ToList()); nodeCheckedList.AddRange(tvwDelete.Nodes[0].Nodes.AsEnumerable<TreeNode>().Where(x => x.Checked).ToList()); if (nodeCheckedList.Count == 0 && !chkIgnoreRelations.Checked) { var result = MessageBox.Show("There are no entities selected but relations will be refreshed. Do you want to turn off relation refreshing?", "Ignore Relations", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result == System.Windows.Forms.DialogResult.Yes) { chkIgnoreRelations.Checked = true; } else if (result == System.Windows.Forms.DialogResult.No) { //Do Nothing } else if (result == System.Windows.Forms.DialogResult.Cancel) { e.Cancel = true; return; } } //Moving the to the summary page CreateSummary(); } }
private void PerformGeneration( nHydrateModel model, List<nHydrateGeneratorProject> genList, Microsoft.VisualStudio.Modeling.Store store, Microsoft.VisualStudio.Modeling.Shell.ModelingDocData docData, List<Type> excludeList, nHydrate.Generator.Common.GeneratorFramework.GeneratorHelper genHelper, List<string> generateModuleList) { _totalFileCount = 0; _processedFileCount = 0; var pkey = string.Empty; try { var startTime = DateTime.Now; var isLicenseError = false; var generationProcessing = false; var fullModuleGenList = genList.Select(x => new ModuleVersionInfo() { ModuleName = (x.Model as nHydrate.Generator.Models.ModelRoot).ModuleName }).ToList(); try { //Get the last version we generated on this machine //We will use this to determine if any other generations have been performed on other machines var cacheFile = new nHydrate.Generator.Common.ModelCacheFile(genList.First()); var cachedGeneratedVersion = cacheFile.GeneratedVersion; var generatedVersion = cachedGeneratedVersion + 1; pkey = ProgressHelper.ProgressingStarted("Generating...", false, 240000); //Put a 4 minute timer on it foreach (var item in genList) { (item.Model as nHydrate.Generator.Models.ModelRoot).GeneratedVersion = generatedVersion; //(item.Model as nHydrate.Generator.Models.ModelRoot).SyncServerToken = model.SyncServerToken; //(item.Model as nHydrate.Generator.Models.ModelRoot).SyncServerURL = model.SyncServerURL; _totalFileCount += genHelper.GetFileCount(item, excludeList); } System.Diagnostics.Debug.WriteLine("File count: " + _totalFileCount); //Save document var isDirty = 0; docData.IsDirty(out isDirty); if (model.IsDirty || (isDirty != 0)) (docData as nHydrateDocData).Save(docData.FileName, 1, 0); _startTime = DateTime.Now; foreach (var item in genList) { if (model.UseModules) { if (generateModuleList.Contains((item.Model as nHydrate.Generator.Models.ModelRoot).ModuleName)) genHelper.GenerateAll(item, excludeList); } else { genHelper.GenerateAll(item, excludeList); } } if (model.Refactorizations.Count > 0) { using (var transaction = store.TransactionManager.BeginTransaction(Guid.NewGuid().ToString())) { model.Refactorizations.Clear(); model.UseUTCTime = !model.UseUTCTime; //Trigger a model change model.UseUTCTime = !model.UseUTCTime; //Keep this line too transaction.Commit(); //Save document (docData as nHydrateDocData).Save(docData.FileName, 1, 0); } } //Save local copy of last generated version cacheFile.GeneratedVersion = generatedVersion; cacheFile.ModelerVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; cacheFile.Save(); this.ErrorList = genHelper.GetErrorList().ToList(); } catch (nHydrate.Generator.Common.Exceptions.LicenseException ex) { ProgressHelper.ProgressingComplete(pkey); MessageBox.Show("This product is not properly licensed", "License Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); isLicenseError = true; } catch (Exception ex) { throw; } finally { ProgressHelper.ProgressingComplete(pkey); } var endTime = DateTime.Now; var duration = endTime.Subtract(startTime); #region Show Generation Complete Dialog if (!isLicenseError) { using (var F = new StatisticsForm()) { var text = "The generation was successful.\r\n\r\n"; text += "Files generated: " + this.FilesSuccess + "\r\n"; text += "Files skipped: " + this.FilesSkipped + "\r\n"; text += "Files failed: " + this.FilesFailed + "\r\n"; text += "\r\n\r\n"; text += "Generation time: " + duration.Hours.ToString("00") + ":" + duration.Minutes.ToString("00") + ":" + duration.Seconds.ToString("00"); F.DisplayText = text; F.GeneratedFileList = this.GeneratedFileList; F.ShowDialog(); } } #endregion } catch (Exception ex) { ProgressHelper.ProgressingComplete(pkey); GlobalHelper.ShowError(ex); } }
private void DTEVerifyComplete(object sender, nHydrate.Generator.Common.EventArgs.MessageCollectionEventArgs e) { this.lvwError.ClearMessages(); this.lvwError.AddMessages(e.MessageCollection); }
public FileStateInfo(nHydrate.Generator.Common.Util.EnvDTEHelper.FileStateConstants fileState, string fileName) { _fileName = fileName; _fileState = fileState; }
public ModuleMappings(nHydrate.Dsl.nHydrateModel model) : this() { _model = model; #region Load Tree foreach (var item in model.Entities.OrderBy(x => x.Name)) { var n = new TreeNode() { Text = item.Name, Tag = item }; tvwEntity.Nodes.Add(n); _nodeCache.Add(item, n); n.ImageIndex = 0; //Add fields foreach (var field in item.Fields.OrderBy(x => x.Name)) { var n2 = new TreeNode() { Text = field.Name, Tag = field }; n.Nodes.Add(n2); _nodeCache.Add(field, n2); n2.ImageIndex = 1; } //Add relations foreach (var relation in item.RelationshipList) { var n2 = new TreeNode() { Text = relation.DisplayName, Tag = relation }; n.Nodes.Add(n2); _nodeCache.Add(relation, n2); n2.ImageIndex = 5; } //Add indexes (no need to include as they will always be in there) foreach (var index in item.IndexList.Where(x => x.IndexType != IndexTypeConstants.PrimaryKey)) { var n2 = new TreeNode() { Text = index.ToString(), Tag = index }; n.Nodes.Add(n2); _nodeCache.Add(index, n2); n2.ImageIndex = 6; } } foreach (var item in model.Views.OrderBy(x => x.Name)) { var n = new TreeNode() { Text = item.Name, Tag = item }; tvwView.Nodes.Add(n); _nodeCache.Add(item, n); n.ImageIndex = 2; } foreach (var item in model.StoredProcedures.OrderBy(x => x.Name)) { var n = new TreeNode() { Text = item.Name, Tag = item }; tvwStoredProc.Nodes.Add(n); _nodeCache.Add(item, n); n.ImageIndex = 3; } foreach (var item in model.Functions.OrderBy(x => x.Name)) { var n = new TreeNode() { Text = item.Name, Tag = item }; tvwFunction.Nodes.Add(n); _nodeCache.Add(item, n); n.ImageIndex = 4; } _nodeCache.Keys.ToList().ForEach(x => _nodeCache[x].SelectedImageIndex = _nodeCache[x].ImageIndex); #endregion #region Load Modules cboModule.Items.Add("(Select One)"); model.Modules.ForEach(x => cboModule.Items.Add(x.Name)); cboModule.SelectedIndex = 0; cboModule.Enabled = true; #endregion }
public void SetupObjects(nHydrate.Dsl.nHydrateModel model, DiagramDocView diagram, ModelingDocData docView) { _model = model; _diagram = diagram; _docView = docView; }