Пример #1
0
        /// <summary>
        /// Updates the database information.
        /// </summary>
        /// <param name="oldPath">The old path.</param>
        /// <param name="newPath">The new path.</param>
        public static void UpdateDatabase(string oldPath, string newPath)
        {
            var mapper   = new SchemaToViewModelMapper();
            var database = mainTree.SingleOrDefault(x => x.DatabasePath.Equals(oldPath));

            mainTree.Remove(database);
            mainTree.Add(mapper.MapSchemaToViewModel(newPath));
        }
Пример #2
0
        private void AddDatabaseToTree(string databasePath)
        {
            if (TreeViewItems.Any(x => x.DatabasePath.Equals(databasePath)))
            {
                return;
            }

            var schemaMapper = new SchemaToViewModelMapper();
            var databaseItem = schemaMapper.MapSchemaToViewModel(databasePath);

            TreeViewItems.Add(databaseItem);

            log.Info("Opened database '" + databaseItem.DatabasePath + "'.");
        }
Пример #3
0
        public void RefreshTree()
        {
            log.Info("Refreshing the database tree.");
            var databasePaths = TreeViewItems.Select(x => x.DatabasePath).ToList();

            TreeViewItems.Clear();

            var schemaMapper = new SchemaToViewModelMapper();

            foreach (var path in databasePaths)
            {
                TreeViewItems.Add(schemaMapper.MapSchemaToViewModel(path));
            }
        }
Пример #4
0
        public ObservableCollection <TreeItem> Load()
        {
            var targetPath = GetSaveLocationPath();

            if (!File.Exists(targetPath))
            {
                return(new ObservableCollection <TreeItem>());
            }

            var xmlSerializer    = new XmlSerializer(typeof(List <string>));
            var resultCollection = new ObservableCollection <TreeItem>();

            using (var streamReader = new StreamReader(targetPath))
            {
                try
                {
                    logger.Info("Restoring recently used databases...");

                    var databasePaths = xmlSerializer.Deserialize(streamReader) as List <string>;
                    var schemaMapper  = new SchemaToViewModelMapper();

                    foreach (var path in databasePaths)
                    {
                        if (File.Exists(path))
                        {
                            var rootItem = schemaMapper.MapSchemaToViewModel(path);
                            resultCollection.Add(rootItem);
                        }
                        else
                        {
                            logger.Info("Could not restore database file at " + path + "\nThe file might have been moved or deleted outside of SQLK.");
                        }
                    }
                }
                catch (Exception ex)
                {
                    logger.Error("Could not load database tree.", ex);
                }
            }

            return(resultCollection);
        }