/// <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 ViewFolderItem MapViews() { var views = dbHandler.GetViews(); var viewFolder = new ViewFolderItem { DisplayName = LocalisationHelper.GetString("TreeItem_Views") }; foreach (var view in views) { viewFolder.Items.Add(new ViewItem { DisplayName = view.Name, DatabasePath = databasePath }); } viewFolder.Items = new ObservableCollection <TreeItem>(viewFolder.Items.OrderBy(x => x.DisplayName)); return(viewFolder); }