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);

		}
Example #3
0
        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

		}
Example #8
0
		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
		}
Example #9
0
        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

		}
Example #11
0
        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);
            }
        }
Example #12
0
        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;

        }
Example #13
0
        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
            }
        }
Example #14
0
 private void wizard1_AfterSwitchPages(object sender, nHydrate.Wizard.Wizard.AfterSwitchPagesEventArgs e)
 {
     wizard1.FinishEnabled = (wizard1.SelectedIndex == wizard1.WizardPages.Count - 1);
 }
Example #15
0
		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
		}
Example #16
0
 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() + "'!");
     }
 }
Example #17
0
        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);
            }

        }
Example #18
0
        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();
                }
            }

        }
Example #19
0
		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);
		}
Example #20
0
        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());
                }
            }

        }
Example #21
0
		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
		}
Example #22
0
		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());
				}
			}
		}
Example #23
0
 public DataTreeItem(string name, nHydrate.DataImport.ImportStateConstants state)
     : this(name)
 {
     this.State = state;
 }
Example #24
0
 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;
     }
 }
Example #25
0
        //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();
            }

        }
Example #26
0
        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);
            }
        }
Example #27
0
		private void DTEVerifyComplete(object sender, nHydrate.Generator.Common.EventArgs.MessageCollectionEventArgs e)
		{
			this.lvwError.ClearMessages();
			this.lvwError.AddMessages(e.MessageCollection);
		}
Example #28
0
 public FileStateInfo(nHydrate.Generator.Common.Util.EnvDTEHelper.FileStateConstants fileState, string fileName)
 {
   _fileName = fileName;
   _fileState = fileState;
 }
Example #29
0
		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;
		}