Пример #1
0
        private void Create()
        {
            StatusInfo = string.Empty;

            if (!sqlStatement.StartsWith("SELECT", StringComparison.CurrentCultureIgnoreCase))
            {
                StatusInfo = LocalisationHelper.GetString("ViewGeneralTab_InvalidStatement");
                return;
            }

            var exectuableSql = QueryBuilder.CreateView(ViewName)
                                .IfNotExists(IsIfNotExists)
                                .As(sqlStatement)
                                .Build();

            using (var dbHandler = new DatabaseHandler(selectedDatabase.DatabasePath))
            {
                try
                {
                    dbHandler.ExecuteNonQuery(exectuableSql);
                    StatusInfo = LocalisationHelper.GetString("ViewCreator_ViewCreateSuccess");
                    MainTreeHandler.AddView(viewName, selectedDatabase.DatabasePath);
                }
                catch (Exception ex)
                {
                    logger.Error("A view could not be created.", ex);
                    StatusInfo = ex.Message.Replace("SQL logic error or missing database\r\n", "SQL-Error - ");
                }
            }
        }
Пример #2
0
        private void Create()
        {
            StatusInfo = string.Empty;

            if (SelectedDatabase == null)
            {
                StatusInfo = LocalisationHelper.GetString("TableCreator_NoDatabaseSelected");
                return;
            }

            if (!string.IsNullOrEmpty(SqlStatement))
            {
                var database = SelectedDatabase as DatabaseSelectItem;
                using (var dbHandler = new DatabaseHandler(database.DatabasePath))
                {
                    try
                    {
                        dbHandler.ExecuteNonQuery(SqlStatement);
                        StatusInfo = LocalisationHelper.GetString("TableCreator_TableCreateSuccess");

                        MainTreeHandler.AddTable(tableName, selectedDatabase.DatabasePath);
                    }
                    catch (Exception ex)
                    {
                        logger.Error("An error occured when the user tried to create a table from the TableCreator.", ex);
                        StatusInfo = ex.Message.Replace("SQL logic error or missing database\r\n", "SQL-Error - ");
                    }
                }
            }
        }
Пример #3
0
        public void AddTrigger_WithValidDatabasePath_DoesNotAddTriggerToDifferentDatabase()
        {
            MainTreeHandler.AddTrigger("NewTrigger", DATABASEPATH1);

            var result = TreeSearcher.DatabaseHoldsItem <TriggerFolderItem>(testTree, "NewTrigger", DATABASEPATH2);

            Assert.IsFalse(result);
        }
Пример #4
0
        public void UpdateTriggerName_WithValidDatabasePath_RenamesTriggerInSpecifiedDatabase()
        {
            MainTreeHandler.UpdateTriggerName("Trigger", "NewTrigger", DATABASEPATH1);

            var result = TreeSearcher.DatabaseHoldsItem <TriggerFolderItem>(testTree, "NewTrigger", DATABASEPATH1);

            Assert.IsTrue(result);
        }
Пример #5
0
        public void AddTrigger_WithValidDatabasePath_AddsTriggerToSpecifiedDatabase()
        {
            MainTreeHandler.AddTrigger("NewTrigger", DATABASEPATH1);

            var result = TreeSearcher.DatabaseHoldsItem <TriggerFolderItem>(testTree, "NewTrigger", DATABASEPATH1);

            Assert.IsTrue(result);
        }
Пример #6
0
        public void UpdateTriggerName_WithValidDatabasePath_DatabaseDoesNotContainOldItemAnymore()
        {
            MainTreeHandler.UpdateTriggerName("Trigger", "NewTrigger", DATABASEPATH1);

            var result = TreeSearcher.DatabaseHoldsItem <TriggerFolderItem>(testTree, "Trigger", DATABASEPATH1);

            Assert.IsFalse(result);
        }
Пример #7
0
 private void RenameTrigger()
 {
     using (var triggerHandler = new TriggerHandler(originalElement.DatabasePath))
     {
         triggerHandler.UpdateTriggerName(originalElement.DisplayName, NewName);
         MainTreeHandler.UpdateTriggerName(originalElement.DisplayName, NewName, originalElement.DatabasePath);
     }
 }
Пример #8
0
 private void RenameTable()
 {
     using (var tableHandler = new TableHandler(originalElement.DatabasePath))
     {
         tableHandler.RenameTable(originalElement.DisplayName, NewName);
         MainTreeHandler.UpdateTableName(originalElement.DisplayName, NewName, originalElement.DatabasePath);
     }
 }
Пример #9
0
 private void RenameIndex()
 {
     using (var indexHandler = new IndexHandler(originalElement.DatabasePath))
     {
         indexHandler.UpdateIndexName(originalElement.DisplayName, NewName);
         MainTreeHandler.UpdateIndexName(originalElement.DisplayName, NewName, originalElement.DatabasePath);
     }
 }
Пример #10
0
 private void RenameView()
 {
     using (var viewHandler = new ViewHandler(originalElement.DatabasePath))
     {
         viewHandler.UpdateViewName(originalElement.DisplayName, NewName);
         MainTreeHandler.UpdateViewName(originalElement.DisplayName, NewName, originalElement.DatabasePath);
     }
 }
Пример #11
0
        public void UpdateViewName_WithValidDatabasePath_RenamesViewInSpecifiedDatabase()
        {
            MainTreeHandler.UpdateViewName("View", "NewView", DATABASEPATH1);

            var result = TreeSearcher.DatabaseHoldsItem <ViewFolderItem>(testTree, "NewView", DATABASEPATH1);

            Assert.IsTrue(result);
        }
Пример #12
0
        public void AddView_WithValidDatabasePath_AddsViewToSpecifiedDatabase()
        {
            MainTreeHandler.AddView("NewView", DATABASEPATH1);

            var result = TreeSearcher.DatabaseHoldsItem <ViewFolderItem>(testTree, "NewView", DATABASEPATH1);

            Assert.IsTrue(result);
        }
Пример #13
0
        public ViewCreatorViewModel()
        {
            IsIfNotExists = true;

            Databases = MainTreeHandler.GetDatabaseSelectItems();
            Tables    = new ObservableCollection <TableTreeItem>();

            createCommand = new DelegateCommand(Create);
        }
Пример #14
0
        public IndexCreatorViewModel()
        {
            Databases = MainTreeHandler.GetDatabaseSelectItems();
            Tables    = new ObservableCollection <string>();
            Columns   = new ObservableCollection <ColumnItem>();
            Columns.CollectionChanged += CollectionContentChanged;

            createCommand = new DelegateCommand(Create);
        }
Пример #15
0
        private void RenameDatabase()
        {
            var originalFileDirectory = Path.GetDirectoryName(originalElement.DatabasePath);
            var originalFileEnding    = Path.GetExtension(originalElement.DatabasePath);
            var newFileName           = string.Format("{0}{1}", NewName, originalFileEnding);
            var newDatabasePath       = Path.Combine(originalFileDirectory, newFileName);

            File.Move(originalElement.DatabasePath, newDatabasePath);
            MainTreeHandler.UpdateDatabase(originalElement.DatabasePath, newDatabasePath);
        }
Пример #16
0
        public MainWindowViewModel(ITreeSaveHelper treeSaveHelper)
        {
            this.treeSaveHelper = treeSaveHelper;
            TreeViewItems       = treeSaveHelper.Load();

            MainTreeHandler.Register(TreeViewItems);

            createDatabaseCommand = new DelegateCommand(CreateDatabase);
            openDatabaseCommand   = new DelegateCommand(OpenDatabase);
            documentationCommand  = new DelegateCommand(OpenDocumentation);
        }
Пример #17
0
        public QueryEditorViewModel()
        {
            Databases          = MainTreeHandler.GetDatabaseSelectItems();
            AvailableTemplates = QueryTemplateGenerator.GetAvailableTemplates();
            dataGrid           = new ListCollectionView(new List <object>());

            selectedTemplate = LocalisationHelper.GetString("QueryEditor_Templates");

            executeCommand = new DelegateCommand(Execute);
            saveCommand    = new DelegateCommand(SaveQuery);
            loadCommand    = new DelegateCommand(LoadQuery);
        }
Пример #18
0
        public TableCreatorViewModel()
        {
            Databases             = MainTreeHandler.GetDatabaseSelectItems();
            ColumnDefinitions     = new ObservableCollection <ColumnDefinitionItem>();
            ForeignKeyDefinitions = new ObservableCollection <ForeignKeyDefinitionItem>();

            ColumnDefinitions.CollectionChanged     += CollectionContentChanged;
            ForeignKeyDefinitions.CollectionChanged += CollectionContentChanged;

            addColumnCommand     = new DelegateCommand(AddColumnDefinition);
            addForeignKeyCommand = new DelegateCommand(AddForeignKeyDefinition);
            createCommand        = new DelegateCommand(Create);
        }
Пример #19
0
        private void Create()
        {
            StatusInfo = string.Empty;

            using (var dbHandler = new DatabaseHandler(selectedDatabase.DatabasePath))
            {
                try
                {
                    dbHandler.ExecuteNonQuery(sqlStatement);
                    StatusInfo = LocalisationHelper.GetString("IndexCreator_StatusInfo_Success");
                    MainTreeHandler.AddIndex(indexName, selectedDatabase.DatabasePath);
                }
                catch (Exception ex)
                {
                    logger.Error("An error occured when the user tried to create an index from the IndexCreator.", ex);
                    StatusInfo = ex.Message.Replace("SQL logic error or missing database\r\n", "SQL-Error - ");
                }
            }
        }
Пример #20
0
        public TriggerCreatorViewModel()
        {
            Databases = MainTreeHandler.GetDatabaseSelectItems();

            TriggerEntryPoints = new List <string> {
                "BEFORE", "AFTER", "INSTEAD OF"
            };
            TriggerEvents = new List <string> {
                "DELETE", "INSERT", "UPDATE", "UPDATE OF"
            };

            AvailableTargets           = new ObservableCollection <string>();
            Columns                    = new ObservableCollection <ColumnItem>();
            Columns.CollectionChanged += CollectionContentChanged;

            createCommand = new DelegateCommand(Create);

            UpdateModel();
        }
Пример #21
0
        private void CopyTable()
        {
            logger.Info("Copying table '" + tableName + "' as '" + TargetTableName
                        + "' from database " + Environment.NewLine + sourceDatabase + Environment.NewLine
                        + " to database " + Environment.NewLine + selectedDatabase.DatabasePath);

            bool isSuccessfullTableCopy = false;

            try
            {
                using (var sourceTableHandler = new TableHandler(sourceDatabase))
                    using (var targetDbHandler = new DatabaseHandler(selectedDatabase.DatabasePath))
                    {
                        var originalTable   = sourceTableHandler.GetTable(tableName);
                        var createStatement = originalTable.CreateStatement.Replace(tableName, TargetTableName);

                        targetDbHandler.ExecuteNonQuery(createStatement);

                        MainTreeHandler.AddTable(TargetTableName, selectedDatabase.DatabasePath);

                        StatusInfo             = LocalisationHelper.GetString("TableMigrator_CopySuccess");
                        isSuccessfullTableCopy = true;
                        logger.Info("Successfully copied table structure to target database.");
                    }
            }
            catch (Exception ex)
            {
                logger.Error("A table could not be copied.", ex);
                StatusInfo = ex.Message.Replace("SQL logic error or missing database\r\n", "SQL-Error - ");
            }

            if (!IsOnlyStructure && isSuccessfullTableCopy)
            {
                CopyValues();
            }
        }
Пример #22
0
        public void SetUp()
        {
            testTree = new ObservableCollection <TreeItem>
            {
                new DatabaseItem
                {
                    DisplayName  = "Db1",
                    DatabasePath = DATABASEPATH1,
                    Items        = new ObservableCollection <TreeItem>
                    {
                        new TableFolderItem
                        {
                            DatabasePath = DATABASEPATH1,
                            Items        = new ObservableCollection <TreeItem>
                            {
                                new TableItem
                                {
                                    DisplayName  = "Table",
                                    DatabasePath = DATABASEPATH1
                                }
                            }
                        },
                        new ViewFolderItem
                        {
                            DatabasePath = DATABASEPATH1,
                            Items        = new ObservableCollection <TreeItem>
                            {
                                new ViewItem
                                {
                                    DisplayName  = "View",
                                    DatabasePath = DATABASEPATH1
                                }
                            }
                        },
                        new TriggerFolderItem
                        {
                            DatabasePath = DATABASEPATH1,
                            Items        = new ObservableCollection <TreeItem>
                            {
                                new TriggerItem
                                {
                                    DisplayName  = "Trigger",
                                    DatabasePath = DATABASEPATH1
                                }
                            }
                        }
                    }
                },
                new DatabaseItem
                {
                    DisplayName  = "Db2",
                    DatabasePath = DATABASEPATH2,
                    Items        = new ObservableCollection <TreeItem>
                    {
                        new TableFolderItem
                        {
                            DatabasePath = DATABASEPATH2,
                            Items        = new ObservableCollection <TreeItem>
                            {
                                new TableItem
                                {
                                    DisplayName  = "Table",
                                    DatabasePath = DATABASEPATH2
                                }
                            }
                        },
                        new ViewFolderItem
                        {
                            DatabasePath = DATABASEPATH2,
                            Items        = new ObservableCollection <TreeItem>
                            {
                                new ViewItem
                                {
                                    DisplayName  = "View",
                                    DatabasePath = DATABASEPATH2
                                }
                            }
                        },
                        new TriggerFolderItem
                        {
                            DatabasePath = DATABASEPATH1,
                            Items        = new ObservableCollection <TreeItem>
                            {
                                new TriggerItem
                                {
                                    DisplayName  = "Trigger",
                                    DatabasePath = DATABASEPATH2
                                }
                            }
                        }
                    }
                }
            };

            MainTreeHandler.Register(testTree);
        }
Пример #23
0
 public void AddView_WithInvalidDatabasePath_DoesNotThrowException()
 {
     Assert.DoesNotThrow(
         () => MainTreeHandler.AddView("NewView", "InvalidPath"));
 }
Пример #24
0
 public void UpdateTriggerName_WithInvalidOldName_DoesNotThrowException()
 {
     Assert.DoesNotThrow(
         () => MainTreeHandler.UpdateTriggerName("InvalidOldName", "NewName", DATABASEPATH1));
 }
Пример #25
0
 public void AddTrigger_WithInvalidDatabasePath_DoesNotThrowException()
 {
     Assert.DoesNotThrow(
         () => MainTreeHandler.AddTrigger("NewTrigger", "InvalidPath"));
 }
 public void SetUp()
 {
     MainTreeHandler.Register(new ObservableCollection <TreeItem>());
     viewModel = new TriggerCreatorViewModel();
 }