示例#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 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);
        }