/// <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;
        }
Example #2
0
        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);
            }
        }
Example #3
0
 public FunctionCollectionNode(DatabaseNode database) => _database = database;
Example #4
0
        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);
        }
Example #5
0
 public TableNode(DatabaseNode databaseNode, string name)
 {
     Database = databaseNode;
     Name     = name;
 }
Example #6
0
 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);
                    }
                }
            }
        }
Example #8
0
 public SchemaNode(DatabaseNode database, string name)
 {
     _database = database;
     Name      = name;
 }
 public ViewCollectionNode(DatabaseNode database) => _database = database;
Example #10
0
 public AssemblyGenerator(DatabaseNode databaseNode, VsProject csProject)
 {
     this.databaseNode = databaseNode;
     this.csProject    = csProject;
 }
Example #11
0
 public ScalarValuedFunctionCollectionNode(DatabaseNode database) => _database = database;
Example #12
0
 public TableNode(DatabaseNode databaseNode, string name)
 {
     _databaseNode = databaseNode;
     _name         = name;
 }
Example #13
0
        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);
            }
        }
Example #14
0
 public UserDefinedTableTypeCollectionNode(DatabaseNode database) => _database = database;
Example #15
0
 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;
 }
Example #17
0
 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;
 }
Example #19
0
#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;
        }
Example #20
0
 public UserNode(DatabaseNode database, string name)
 {
     _database = database;
     Name      = name;
 }