Пример #1
0
        /// <summary>
        /// Maps the provided database to a hierarchical ViewModel structure with a DatabaseItem as its root.
        /// </summary>
        /// <param name="databasePath">The database path.</param>
        /// <returns></returns>
        public DatabaseItem MapSchemaToViewModel(string databasePath)
        {
            logger.Info("Trying to load database file at " + databasePath);
            this.databasePath = databasePath;
            dbHandler         = new DatabaseHandler(databasePath);

            TableFolderItem   tableFolder   = MapTables();
            ViewFolderItem    viewFolder    = MapViews();
            IndexFolderItem   indexFolder   = MapIndexes();
            TriggerFolderItem triggerFolder = MapTriggers();

            var databaseItem = new DatabaseItem()
            {
                DisplayName  = Path.GetFileNameWithoutExtension(databasePath),
                DatabasePath = databasePath
            };

            databaseItem.Items.Add(tableFolder);
            databaseItem.Items.Add(viewFolder);
            databaseItem.Items.Add(indexFolder);
            databaseItem.Items.Add(triggerFolder);

            logger.Info("Loaded database " + databaseItem.DisplayName + ".");
            return(databaseItem);
        }
Пример #2
0
        private TableFolderItem MapTables()
        {
            var tables      = dbHandler.GetTables();
            var tableFolder = new TableFolderItem {
                DisplayName = LocalisationHelper.GetString("TreeItem_Tables")
            };

            foreach (var table in tables)
            {
                tableFolder.Items.Add(new TableItem
                {
                    DisplayName  = table.Name,
                    DatabasePath = databasePath
                });
            }
            tableFolder.Items = new ObservableCollection <TreeItem>(tableFolder.Items.OrderBy(x => x.DisplayName));

            return(tableFolder);
        }