Example #1
0
        /// <summary>The build tool tip.</summary>
        /// <param name="table">The table.</param>
        /// <param name="column">The column.</param>
        /// <returns>The build tool tip.</returns>
        private string BuildToolTip(DbModelTable table, DbModelColumn column)
        {
            string friendlyColumnName = Utility.MakeSqlFriendly(column.Name);
            string toolTip            = table.FullName + "." + friendlyColumnName;

            if (column.IsKey)
            {
                toolTip += "; Primary Key";
            }

            if (column.IsAutoIncrement)
            {
                toolTip += "; Auto*";
            }

            if (column.ForeignKeyReference != null)
            {
                toolTip += string.Format("; FK -> {0}.{1}", column.ForeignKeyReference.ReferenceTable.FullName, column.ForeignKeyReference.ReferenceColumn.Name);
            }

            if (column.IsReadOnly)
            {
                toolTip += "; Read Only";
            }

            return(toolTip);
        }
Example #2
0
        /// <summary>The navigate to.</summary>
        /// <param name="modelObject">The model object.</param>
        public void NavigateTo(IDbModelNamedObject modelObject)
        {
            if (modelObject == null)
            {
                return;
            }

            switch (modelObject.ObjectType)
            {
            case ObjectTypes.Table:
                foreach (TreeNode treeNode in _tablesNode.Nodes)
                {
                    IDbModelNamedObject obj = treeNode.Tag as IDbModelNamedObject;
                    if (obj != null && modelObject == obj)
                    {
                        SelectNode(treeNode);
                    }
                }

                break;

            case ObjectTypes.View:
                foreach (TreeNode treeNode in _viewsNode.Nodes)
                {
                    IDbModelNamedObject obj = treeNode.Tag as IDbModelNamedObject;
                    if (obj != null && modelObject == obj)
                    {
                        SelectNode(treeNode);
                    }
                }

                break;

            case ObjectTypes.Column:
                DbModelColumn modelColumn = modelObject as DbModelColumn;
                if (modelColumn != null)
                {
                    foreach (TreeNode treeNode in _tablesNode.Nodes)
                    {
// only look in the tables nodw for FK refs
                        DbModelTable modelTable = treeNode.Tag as DbModelTable;
                        if (modelTable != null && modelTable == modelColumn.ParentTable)
                        {
                            // now find the column in the child nodes
                            foreach (TreeNode columnNode in treeNode.Nodes)
                            {
                                DbModelColumn modelReferingColumn = columnNode.Tag as DbModelColumn;
                                if (modelReferingColumn != null && modelReferingColumn == modelColumn)
                                {
                                    SelectNode(columnNode);
                                }
                            }
                        }
                    }
                }

                break;
            }
        }
        /// <summary>The get table or view by name.</summary>
        /// <param name="model">The model.</param>
        /// <param name="tableName">The table name.</param>
        /// <returns></returns>
        protected DbModelTable GetTableOrViewByName(DbModelInstance model, string tableName)
        {
            DbModelTable tableOrView = model.FindTable(tableName);

            if (tableOrView == null)
            {
                // check the views
                tableOrView = model.FindView(tableName);
            }

            return(tableOrView);
        }
        public void nvelocity_with_dbmodel2()
        {
            DbModelInstance model = new DbModelInstance();

            model.ConnectionString = "conn str";
            model.ProviderName     = "sql.foo";
            DbModelTable table = new DbModelTable {
                Name = "MyTable"
            };

            model.Add(table);
            table.Add(new DbModelColumn {
                Name = "ID"
            });
            table.Add(new DbModelColumn {
                Name = "FirstName"
            });

            Dictionary <string, object> items = new Dictionary <string, object>();

            items.Add("model", model);

            string template =
                @"Template Test ($num):
ConnectionString: ""$model.ConnectionString""
ProviderName: ""$model.ProviderName""

#foreach ($table in $model.Tables)
$table.Name
#foreach ($c in $table.Columns)
  * $c.Name
#end
#end
";
            string s = _formatter.Format(template, items);

            Console.WriteLine(s);
            Assert.That(s.Length, Is.GreaterThan(0));
        }
Example #5
0
        /// <summary>The create tree nodes.</summary>
        /// <param name="table">The table.</param>
        private void CreateTreeNodes(DbModelTable table)
        {
            TreeNode tableNode = new TreeNode(table.FullName);

            tableNode.Name             = table.FullName;
            tableNode.ImageKey         = table.ObjectType;
            tableNode.SelectedImageKey = table.ObjectType;
            tableNode.ContextMenuStrip = TableNodeContextMenuStrip;
            tableNode.Tag = table;

            foreach (DbModelColumn column in table.Columns)
            {
                string   friendlyColumnName = Utility.MakeSqlFriendly(column.Name);
                TreeNode columnNode         = new TreeNode(friendlyColumnName);
                columnNode.Name = column.Name;
                string imageKey = BuildImageKey(column);
                columnNode.ImageKey         = imageKey;
                columnNode.SelectedImageKey = imageKey;
                columnNode.ContextMenuStrip = ColumnNameContextMenuStrip;
                columnNode.Tag  = column;
                columnNode.Text = GetSummary(column);
                string toolTip = BuildToolTip(table, column);
                columnNode.ToolTipText = toolTip;
                tableNode.Nodes.Add(columnNode);
            }

            switch (table.ObjectType)
            {
            case ObjectTypes.Table:
                _tablesNode.Nodes.Add(tableNode);
                break;

            case ObjectTypes.View:
                _viewsNode.Nodes.Add(tableNode);
                break;
            }
        }
Example #6
0
        public void Load(DbModelObjectBase model)
        {
            if (model.GetType() == typeof(DbModelTable))
            {
                DbModelTable db        = model as DbModelTable;
                string       tableName = db.Name;

                DataTable datatable = new DataTable();

                string connectionString = C[4] as string;

                DataConnection dc = new DataConnection();
                dc.connectionString = connectionString;
                connectionString    = dc.GetConnectionStringr();

                string selectCommand = "SELECT * FROM " + tableName;

                SqlDataAdapter da = new SqlDataAdapter(selectCommand, connectionString);

                da.Fill(datatable);

                dg.DataSource = datatable;
            }
        }
 /// <summary>Initializes a new instance of the <see cref="DbModelForeignKeyReference"/> class.</summary>
 /// <param name="owningColumn">The owning column.</param>
 /// <param name="fkTable">The fk table.</param>
 /// <param name="fkColumn">The fk column.</param>
 public DbModelForeignKeyReference(DbModelColumn owningColumn, DbModelTable fkTable, DbModelColumn fkColumn)
 {
     OwningColumn    = owningColumn;
     ReferenceTable  = fkTable;
     ReferenceColumn = fkColumn;
 }