private void EditDataServerCommand(object parameter) { if (!(parameter is TreeNodeViewModel treeNode)) { return; } if (!(treeNode.NodePayload is DatabaseServer server)) { return; } // make copy of server settings to rollback changes if needed DatabaseServer serverCopy = server.Copy(); // edit server settings ConnectSQLServerDialogWindow dialog = new ConnectSQLServerDialogWindow(serverCopy); _ = dialog.ShowDialog(); if (dialog.Result == null) { return; } string serverCopyName = string.IsNullOrWhiteSpace(serverCopy.Address) ? serverCopy.Name : $"{serverCopy.Name} ({serverCopy.Address})"; // check if new server name already exists if (serverCopy.Name != server.Name) { if (DatabaseServerNameExists(serverCopy)) { MessageBox.Show("SQL сервер " + serverCopyName + " уже сущестует.", "DaJet", MessageBoxButton.OK, MessageBoxImage.Information); return; } } // check if new server address already exists if (serverCopy.Address != server.Address) { if (DatabaseServerAddressExists(serverCopy)) { MessageBox.Show("SQL сервер " + serverCopyName + " уже сущестует.", "DaJet", MessageBoxButton.OK, MessageBoxImage.Information); return; } } // persist server settings changes serverCopy.CopyTo(server); SaveMetadataSettings(); // show server name and address changes in UI treeNode.NodeText = serverCopyName; }
private void AddDataServerCommand(object parameter) { if (!(parameter is TreeNodeViewModel treeNode)) { return; } if (treeNode.NodePayload != this) { return; } // get sql server address ConnectSQLServerDialogWindow dialog = new ConnectSQLServerDialogWindow(); _ = dialog.ShowDialog(); if (dialog.Result == null) { return; } // check if server name or address is already exists if (DatabaseServerExists(dialog.Result)) { MessageBox.Show("SQL сервер " + dialog.Result.Name + " уже добавлен.", "DaJet", MessageBoxButton.OK, MessageBoxImage.Information); return; } // setup server connection IMessagingService messaging = Services.GetService <IMessagingService>(); messaging.UseServer( string.IsNullOrWhiteSpace(dialog.Result.Address) ? dialog.Result.Name : dialog.Result.Address); if (!string.IsNullOrWhiteSpace(dialog.Result.UserName)) { messaging.UseCredentials(dialog.Result.UserName, dialog.Result.Password); } messaging.UseDatabase(string.Empty); // check connection string errorMessage; if (messaging.CheckConnection(out errorMessage)) { int port = messaging.GetServiceBrokerPortNumber(); if (port != 0) { dialog.Result.ServiceBrokerPortNumber = port; } MessageBox.Show("Соединение открыто успешно." + Environment.NewLine + messaging.ConnectionString, "DaJet", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("Соединение недоступно!" + Environment.NewLine + messaging.ConnectionString + Environment.NewLine + Environment.NewLine + errorMessage, "DaJet", MessageBoxButton.OK, MessageBoxImage.Information); } MetadataSettings.Servers.Add(dialog.Result); SaveMetadataSettings(); TreeNodeViewModel serverNode = CreateServerTreeNode(dialog.Result, !string.IsNullOrEmpty(errorMessage)); serverNode.IsSelected = true; RootNode.TreeNodes.Add(serverNode); }