/// <summary> /// Loads the database for this instance. /// may be called multiple times, if uploading multiple CSV files. /// </summary> /// <param name="fileName"></param> /// <returns></returns> public override bool LoadSchema( string fileName ) { //enforce that the filename must be a known configuration. if ( !FileIsKnown( fileName ) ) return false; var dbPreview = new CsvReader( new StreamReader( fileName ), true ); if ( CsvDataToImport == null ) { CsvDataToImport = new List<CsvDataModel>(); TableNodes = new List<DatabaseNode>(); } //a local tableNode object, which will track this one of multiple CSV files that may be imported List<DatabaseNode> tableNodes = new List<DatabaseNode>(); CsvDataToImport.Add( new CsvDataModel( fileName ) { TableNodes = tableNodes, RecordType = GetRecordTypeFromFilename( fileName ) } ); var tableItem = new DatabaseNode(); tableItem.Name = Path.GetFileNameWithoutExtension( fileName ); int currentIndex = 0; var firstRow = dbPreview.ElementAtOrDefault( 0 ); if ( firstRow != null ) { foreach ( var columnName in dbPreview.GetFieldHeaders() ) { var childItem = new DatabaseNode(); childItem.Name = columnName; childItem.NodeType = typeof( string ); childItem.Value = firstRow[currentIndex] ?? string.Empty; childItem.Table.Add( tableItem ); tableItem.Columns.Add( childItem ); currentIndex++; } tableNodes.Add( tableItem ); TableNodes.Add( tableItem ); //this is to maintain compatibility with the base Excavator object. } return tableNodes.Count() > 0 ? true : false; }
public TableNode(DataTable dt, DatabaseNode parent, string ownerName, IDbConnection conn, IProvider provider) : base(dt.TableName, parent) { string tableName = dt.TableName; SetImageIndex(15); // unmapped this.myObject = new Table(tableName, string.Empty, (string)dt.ExtendedProperties["summary"]); this.Table.OnIsMappedChanged += new EventHandler(OnIsMappedChanged); #if DontUseDataSets DataTable dt = null; if (!parent.Database.IsXmlSchema) { string sql; if (ownerName != null && ownerName.Trim() != "") { sql = "SELECT * FROM " + provider.GetQuotedName(ownerName) + "." + provider.GetQuotedName(tableName); } else { sql = "SELECT * FROM " + provider.GetQuotedName(tableName); } DataSet ds = new DataSet(); IDbCommand cmd = provider.NewSqlCommand(conn); cmd.CommandText = sql; IDataAdapter da = provider.NewDataAdapter(cmd, null, null, null); da.FillSchema(ds, SchemaType.Source); dt = ds.Tables[0]; } else { dt = parent.Database.DataSet.Tables[tableName]; #endif if (parent.Database.IsXmlSchema && dt.PrimaryKey.Length == 0) { string pkColumnName = GeneratePkName(dt); DataColumn pkColumn = dt.Columns.Add(pkColumnName, typeof(int)); dt.PrimaryKey = new DataColumn[] { pkColumn }; } foreach (DataColumn column in dt.Columns) { bool isPrimary = false; bool isAutoIncremented = false; foreach (DataColumn pkColumn in dt.PrimaryKey) { if (pkColumn == column) { isPrimary = true; isAutoIncremented = pkColumn.AutoIncrement; } } ColumnNode cn = new ColumnNode(column.ColumnName, isPrimary, isAutoIncremented, column.DataType.ToString(), (string)column.ExtendedProperties["summary"], this); if (parent.Database.IsXmlSchema && column.ExtendedProperties.Contains("schemaType")) { cn.UserData.Add("schemaType", "Element"); } cn.IsPrimaryChanged += new EventHandler(OnIsPrimaryChanged); this.Nodes.Add(cn); } }
public FunctionCollectionNode(DatabaseNode database) => _database = database;
public CentralServerNode load(SystemInfo systemInfo) { CentralServerNode centralServerNode = csnFactory.CreateExport().Value; centralServerNode.Properties = CentralServerProperties.From(systemInfo.CentralServer); DatabasesFolderNode databasesFolderNode = dfnFactory.CreateExport().Value; foreach (var database in systemInfo.Databases.OrderBy(db => db.Name)) { DatabaseNode databaseNode = dfFactory.CreateExport().Value; databaseNode.DatabaseName = database.Name; if (database.Classes != null) { foreach (var @class in database.Classes.OrderBy(c => c.Name)) { var cn = new ClassNode(@class.Name, @class.Interface, @class.ParentClasses); foreach (var f in @class.Fields.OrderBy(f => f.Name)) { var fn = new FieldNode(f.Name, f.Type); cn.Children.Add(fn); } foreach (var m in @class.Methods.OrderBy(m => m)) { var mn = new MethodNode(m); cn.Children.Add(mn); } databaseNode.Children.Add(cn); } } databasesFolderNode.Children.Add(databaseNode); } centralServerNode.Children.Add(databasesFolderNode); DataServersFolderNode dataServersFolderNode = new DataServersFolderNode(); foreach (var dataServer in systemInfo.DataServer) { DataServerNode dataServerNode = dsnFactory.CreateExport().Value; dataServerNode.Properties = DataServerProperties.From(dataServer); //DatabasesFolderNode databasesFolderNode2 = dfnFactory.CreateExport().Value; //connectionService.DatabasesChanged += delegate(object s, EventArgs e) //{ // databasesFolderNode2.Children.Clear(); // foreach (string database in connectionService.Databases) // { // DatabaseNode databaseNode = new DatabaseNode(database); // databasesFolderNode2.Children.Add(databaseNode); // } //}; //foreach (string database in databasesList) //{ // DatabaseNode databaseNode = new DatabaseNode(database); // databasesFolderNode2.Children.Add(databaseNode); //} //dataServerNode.Children.Add(databasesFolderNode2); dataServersFolderNode.Children.Add(dataServerNode); } centralServerNode.Children.Add(dataServersFolderNode); return(centralServerNode); }
public TableNode(DatabaseNode databaseNode, string name) { Database = databaseNode; Name = name; }
public void AddConnection() { ConnectionDialog dlg = new ConnectionDialog(); dlg.Owner = System.Windows.Application.Current.MainWindow; if (dlg.ShowDialog() == true) { Connection conn = dlg.Connection; Node node = new DatabaseNode(conn); if (conn.Default) SetDefaultConnection(conn); Container.Add(conn); SaveConnections(); dataTree.Nodes.Add(node); Modified = true; } }
private void MenuItem_cs文件还原设计模型_Click_1(object sender, RoutedEventArgs e) { MenuItem item = (MenuItem)sender; ContextMenu menu = (ContextMenu)item.Parent; var obj = (StackPanel)menu.PlacementTarget; ProjectNode projectNode = (ProjectNode)obj.Tag; using (System.Windows.Forms.OpenFileDialog f = new System.Windows.Forms.OpenFileDialog()) { f.Filter = "*.cs|*.cs"; if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { var bs = System.IO.File.ReadAllBytes(f.FileName); string url = $"POST /ImportCSFileHandler.aspx?projectid={projectNode.Project.id}"; var host = $"{Helper.WebSite}/"; host = host.Substring(host.IndexOf("://") + 3); host = host.Substring(0, host.IndexOf("/")); int port = 80; if (host.Contains(":")) { port = Convert.ToInt32(host.Split(':')[1]); host = host.Split(':')[0]; } Way.Lib.NetStream client = new Way.Lib.NetStream(host, port); client.AsSSLClient(); System.IO.StreamWriter stream = new System.IO.StreamWriter(client); stream.WriteLine(url); stream.WriteLine($"Cookie: WayScriptRemoting={Net.RemotingClient.SessionID}"); stream.WriteLine($"Content-Type: import"); stream.WriteLine($"Content-Length: {bs.Length}"); stream.WriteLine(""); stream.Flush(); client.Write(bs, 0, bs.Length); var reader = new System.IO.StreamReader(client); while (true) { if (reader.ReadLine().Length == 0) { break; } } var result = reader.ReadLine(); client.Close(); if (result != "ok") { Helper.ShowError(this, result); return; } DatabaseNode dbnode = (DatabaseNode)projectNode.Children.Where(m => m is TreeNode.DatabaseNode).FirstOrDefault(); dbnode.ReBindItems(); MessageBox.Show(this, "成功导入!"); } catch (Exception ex) { MessageBox.Show(this, ex.GetBaseException().Message); } } } }
public SchemaNode(DatabaseNode database, string name) { _database = database; Name = name; }
public ViewCollectionNode(DatabaseNode database) => _database = database;
public AssemblyGenerator(DatabaseNode databaseNode, VsProject csProject) { this.databaseNode = databaseNode; this.csProject = csProject; }
public ScalarValuedFunctionCollectionNode(DatabaseNode database) => _database = database;
public TableNode(DatabaseNode databaseNode, string name) { _databaseNode = databaseNode; _name = name; }
public void ProcessAssetRequest(NodeAddedEvent e, [Combine] AssetRequestNode node, DatabaseNode db) { string assetGuid = node.assetReference.Reference.AssetGuid; AssetInfo assetInfo = db.assetBundleDatabase.AssetBundleDatabase.GetAssetInfo(assetGuid); Entity entity = node.Entity; if (db.assetStorage.Contains(assetGuid)) { Object data = db.assetStorage.Get(assetGuid); this.AttachResourceToEntity(data, assetInfo.ObjectName, entity); } else { HashSet <AssetBundleInfo> dependencies = new HashSet <AssetBundleInfo>(); this.CollectBundles(assetInfo, dependencies); this.PrepareLoadingRequest(entity, dependencies); } }
public UserDefinedTableTypeCollectionNode(DatabaseNode database) => _database = database;
public override void LoadChilds() { if (Metadata == null) { XmlDocument doc = new XmlDocument(); using (Stream stream = DataProviderHelper.GetConfigurationStream()) { doc.Load(stream); stream.Close(); } Metadata = doc.SelectSingleNode(String.Format("//add[@invariant='{0}']/SchemaBrowser", Connection.InvariantName)); } if (Metadata != null) { DbConnection dbConnection = DataProviderHelper.CreateDbConnection(Connection.InvariantName); dbConnection.ConnectionString = Connection.ConnectionString; dbConnection.Open(); try { foreach (XmlNode child in Metadata) { if (child.NodeType != XmlNodeType.Element || child.Name != "node") continue; XmlElement node = (XmlElement)child; if (node.HasAttribute("collection")) { DataTable collection = dbConnection.GetSchema(node.GetAttribute("collection"), GetRestrictionValues(node.GetAttribute("restrictions"))); foreach (DataRow row in collection.Rows) { Node childNode; XmlElement target = (XmlElement)node.SelectSingleNode("target"); int imageIndex = -1; if (target != null) { childNode = new TableNode(Connection, GetValue(row, target.GetAttribute("schema")), GetValue(row, target.GetAttribute("name"))); imageIndex = 3; } else { childNode = new DatabaseNode(Connection, node, row); imageIndex = 1; } childNode.Text = GetValue(row, node.GetAttribute("caption")); XmlElement image = (XmlElement)node.SelectSingleNode("image"); if (image != null) imageIndex = Convert.ToInt32(image.GetAttribute("index")); childNode.SelectedImageIndex = childNode.ImageIndex = imageIndex; Nodes.Add(childNode); } } else { DatabaseNode childNode = new DatabaseNode(Connection, node, null); childNode.Text = GetValue(Data, node.GetAttribute("caption")); XmlElement image = (XmlElement)node.SelectSingleNode("image"); if (image != null) childNode.SelectedImageIndex = childNode.ImageIndex = Convert.ToInt32(image.GetAttribute("index")); Nodes.Add(childNode); } } } finally { dbConnection.Close(); } } }
public TableCollectionNode(DatabaseNode databaseNode) { _databaseNode = databaseNode; }
private void Fill() { dataTree.BeginUpdate(); dataTree.Nodes.Clear(); Node node = new Node("Add connection", 0); node.NodeFont = new Font(dataTree.Font, FontStyle.Underline); node.ForeColor = Color.DarkBlue; dataTree.Nodes.Add(node); if (Container.connections != null) foreach (Connection conn in Container.connections) { node = new DatabaseNode(conn); if (conn.Default) node.ImageIndex = node.SelectedImageIndex = 2; dataTree.Nodes.Add(node); } dataTree.EndUpdate(); }
public StoredProcedureNode(DatabaseNode databaseNode, string name) { _databaseNode = databaseNode; _name = name; }
#pragma warning restore #endregion #region Methods /// <summary> /// Loads the database for this instance. /// </summary> /// <param name="fileName"></param> /// <returns></returns> public override bool LoadSchema( string fileName ) { Database = new Database( fileName ); TableNodes = new List<DatabaseNode>(); var scanner = new DataScanner( Database ); var tables = Database.Dmvs.Tables; foreach ( var table in tables.Where( t => !t.IsMSShipped ).OrderBy( t => t.Name ) ) { var rows = scanner.ScanTable( table.Name ); var tableItem = new DatabaseNode(); tableItem.Name = table.Name; tableItem.NodeType = typeof( object ); var rowData = rows.FirstOrDefault(); if ( rowData != null ) { foreach ( var column in rowData.Columns ) { var childItem = new DatabaseNode(); childItem.Name = column.Name; childItem.NodeType = Extensions.GetSQLType( column.Type ); childItem.Table.Add( tableItem ); tableItem.Columns.Add( childItem ); tableItem.Value = rowData[column] ?? DBNull.Value; } } TableNodes.Add( tableItem ); } return TableNodes.Count() > 0 ? true : false; }
public UserNode(DatabaseNode database, string name) { _database = database; Name = name; }