/// <summary> /// Drop table from Db /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public async void DropTableHandler(object sender, TableModel e) { var dialog = await this.ShowMessageAsync("Drop table", $"Do you really want to drop {e.Title} ? Changes can't be undone!", MessageDialogStyle.AffirmativeAndNegative); if (dialog == MessageDialogResult.Affirmative) { var res = _updater.DropTable(e); if (res != null) { await this.ShowMessageAsync("Drop table", res); Output.WriteLine(OutputPanelListener.PrepareException(res)); return; } DatabaseModelDesigner designer; if (TryGetSelectedDesigner(out designer)) { var facade = new DiagramFacade(designer); facade.RemoveTable(e); } await DatabaseConnectionSidebar.RefreshTreeData(); } }
/// <summary> /// Open saved diagram /// </summary> /// <param name="sender"></param> /// <param name="diagramModel">Diagram for opening</param> private async void DatabaseConnectionSidebarOnAddDiagram(object sender, DiagramModel diagramModel) { Mouse.OverrideCursor = Cursors.Wait; DiagramFacade.CreateNewDiagram(this, diagramModel.Name); LayoutAnchorable panel; if (TryGetSelectedPanel(out panel)) { DatabaseModelDesigner designer; if (TryGetSelectedDesigner(out designer)) { panel.IsActiveChanged -= AnchorableDesignerActiveChangedHandler; var facade = new DiagramFacade(designer.ViewModel); try { await facade.LoadDiagram(designer.ModelDesignerCanvas, XDocument.Parse(diagramModel.Xml)); } catch (Exception exception) when(exception is SqlException || exception is OracleException) { Output.WriteLine(OutputPanelListener.PrepareException(exception.Message)); } panel.IsActiveChanged += AnchorableDesignerActiveChangedHandler; } } await DatabaseConnectionSidebar.RefreshTreeData(); Mouse.OverrideCursor = null; }
/// <summary> /// Save diagram to DB and refresh treeview in panel /// </summary> /// <param name="vm"></param> private async void SaveDiagramAndRefresh(DatabaseModelDesignerViewModel vm) { var facade = new DiagramFacade(vm); var res = facade.SaveDiagram(); Output.WriteLine(DiagramFacade.DiagramSaved); await DatabaseConnectionSidebar.RefreshTreeData(); }
/// <summary> /// Rename selected table and refresh treeview /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public async void RenameTableHandler(object sender, TableModel e) { var originalName = e.Title; var dialog = new TableNameDialog() { Model = e, Owner = this }; dialog.ShowDialog(); string res = _updater.RenameTable(originalName, e); if (res != null) { await this.ShowMessageAsync("Rename table", res); Output.WriteLine(OutputPanelListener.PrepareException(res)); return; } await DatabaseConnectionSidebar.RefreshTreeData(); }
/// <summary> /// Refresh treeview after table creation /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public async void CreateTableHandler(object sender, System.EventArgs e) { await DatabaseConnectionSidebar.RefreshTreeData(); }
/// <summary> /// Delete saved diagram /// </summary> /// <param name="sender"></param> /// <param name="diagramModel">Diagram for deletion</param> private async void DatabaseConnectionSidebarOnDropDiagram(object sender, DiagramModel diagramModel) { var ctx = new DatabaseContext(SessionProvider.Instance.ConnectionType); var res = ctx.DeleteDiagram(diagramModel.Name); await DatabaseConnectionSidebar.RefreshTreeData(); }