/// <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 TriggerFolderItem MapTriggers() { var triggers = dbHandler.GetTriggers(); var triggerFolder = new TriggerFolderItem { DisplayName = LocalisationHelper.GetString("TreeItem_Triggers") }; foreach (var trigger in triggers) { triggerFolder.Items.Add(new TriggerItem { DisplayName = trigger.Name, DatabasePath = databasePath }); } triggerFolder.Items = new ObservableCollection <TreeItem>(triggerFolder.Items.OrderBy(x => x.DisplayName)); return(triggerFolder); }