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