private void CreateWebCatalog(object parameter) { if (!(parameter is TreeNodeViewModel parentNode)) return; // ask for catalog name InputStringDialog dialog = new InputStringDialog() { Title = "Catalog name" }; _ = dialog.ShowDialog(); if (dialog.Result == null) return; string catalogName = (string)dialog.Result; string catalogPath; if (parentNode.NodePayload is WebServerSettings) { catalogPath = Path.Combine(parentNode.NodeText, catalogName); } else { catalogPath = Path.Combine((string)parentNode.NodePayload, catalogName); } string catalogFullName = Path.Combine(Module.WebServersCatalogPath, catalogPath); if (Directory.Exists(catalogFullName)) { MessageBox.Show($"Catalog \"{catalogPath}\" already exists !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } // create direcitory on the disk _ = Directory.CreateDirectory(catalogFullName); TreeNodeViewModel treeNode = CreateCatalogNode(parentNode, catalogName); treeNode.IsExpanded = true; parentNode.IsExpanded = true; }
private void AttachWebServer(object parameter) { if (!(parameter is TreeNodeViewModel parentNode)) return; InputStringDialog dialog = new InputStringDialog() { Title = "Web server name" }; _ = dialog.ShowDialog(); if (dialog.Result == null) return; string catalogName = Path.Combine(Module.WebServersCatalogPath, (string)dialog.Result); DirectoryInfo catalog = new DirectoryInfo(catalogName); if (catalog.Exists) { MessageBox.Show($"Catalog \"{catalogName}\" already exists !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } catalog.Create(); WebServerSettings settings = new WebServerSettings() { Name = catalog.Name }; string settingsFilePath = Path.Combine(catalog.FullName, SETTINGS_FILE_NAME); SaveWebServerSettings(settings, settingsFilePath); TreeNodeViewModel treeNode = CreateWebServerNode(parentNode, settings); treeNode.IsExpanded = true; }
private void AttachServer(object parameter) { if (!(parameter is TreeNodeViewModel parentNode)) { return; } // ask for catalog name InputStringDialog dialog = new InputStringDialog() { Title = "Server name" }; _ = dialog.ShowDialog(); if (dialog.Result == null) { return; } string serverName = (string)dialog.Result; DatabaseServer server = Module.Metadata.Settings.Servers.Where(s => s.Name == serverName).FirstOrDefault(); if (server != null) { MessageBox.Show($"Server \"{serverName}\" is already attached !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } else { server = new DatabaseServer() { Name = serverName }; } string catalogPath = Path.Combine(Module.ModuleCatalogPath, MODULE_NAME, serverName); if (!Directory.Exists(catalogPath)) { _ = Directory.CreateDirectory(catalogPath); } Module.Metadata.Settings.Servers.Add(server); Module.SaveMetadataSettings(Module.Metadata.Settings); CreateServerNode(server, out TreeNodeViewModel serverNode); serverNode.IsExpanded = true; parentNode.IsExpanded = true; parentNode.TreeNodes.Add(serverNode); }
private void CreateWebScript(object parameter) { if (!(parameter is TreeNodeViewModel parentNode)) return; WebServerSettings settings = GetWebServerSettingsForScriptNode(parentNode); if (settings == null) { MessageBox.Show("Web server settings not found!", "1C#", MessageBoxButton.OK, MessageBoxImage.Warning); return; } // ask for query file name InputStringDialog dialog = new InputStringDialog() { Title = "Script name" }; _ = dialog.ShowDialog(); if (dialog.Result == null) return; string scriptName = (string)dialog.Result; string catalogPath; if (parentNode.NodePayload is WebServerSettings) { catalogPath = parentNode.NodeText; } else { catalogPath = (string)parentNode.NodePayload; } string scriptFullName = Path.Combine(Module.WebServersCatalogPath, catalogPath, $"{scriptName}.qry"); if (File.Exists(scriptFullName)) { MessageBox.Show($"Script \"{scriptFullName}\" already exists !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } // create query file on the disk _ = File.Create(scriptFullName); CreateScriptNode(parentNode, $"{scriptName}.qry"); // open script for editing QueryEditorView view = new QueryEditorView() { DataContext = new QueryEditorViewModel(Module.Shell, settings, scriptFullName, MetadataService, ScriptingService) { QueryScript = "" } }; Module.Shell.AddTabItem($"{scriptName}.qry", view); }
private string PromptTextInput(string msg, string def) { InputStringDialog dlg = new InputStringDialog(); dlg.Message = msg; dlg.InputString = def; bool?dlgRet = dlg.ShowDialog(); if (!dlgRet.Value) { return(null); } return(dlg.InputString); }
private void ConnectToServer(object parameter) { InputStringDialog dialog = new InputStringDialog(); _ = dialog.ShowDialog(); if (dialog.Result == null) { return; } IMetadataReader metadataProvider = _shell.GetService <IMetadataReader>(); string serverName = (string)dialog.Result; Server server = new Server() { Address = serverName }; if (!metadataProvider.CheckServerConnection(server)) { _ = MessageBox.Show( "Unable to connect server!", ONE_C_SHARP, MessageBoxButton.OK, MessageBoxImage.Error); return; } var treeNode = new TreeNodeViewModel() { NodeText = server.Address, NodeIcon = new BitmapImage(new Uri(LOCAL_SERVER)), NodePayload = server }; treeNode.ContextMenuItems.Add(new MenuItemViewModel() { MenuItemHeader = "Connect to database...", MenuItemIcon = new BitmapImage(new Uri(CONNECT_TO_DATABASE)), MenuItemCommand = new AsyncCommand(ConnectToInfoBase, CanExecuteConnectToInfoBase), MenuItemPayload = treeNode }); _shell.AddTreeNode(treeNode); }
private void AttachDatabase(object parameter) { if (!(parameter is TreeNodeViewModel parentNode)) { return; } InputStringDialog input = new InputStringDialog() { Title = "Database name" }; _ = input.ShowDialog(); if (input.Result == null) { return; } string serverName = parentNode.NodeText; string databaseName = (string)input.Result; string metadataFilePath = Path.Combine(Module.ModuleCatalogPath, MODULE_NAME, serverName, $"{databaseName}.xml"); DatabaseServer server = Module.Metadata.Settings.Servers.Where(s => s.Name == serverName).FirstOrDefault(); InfoBase database = server.Databases.Where(d => d.Name == databaseName).FirstOrDefault(); if (database != null) { MessageBox.Show($"Database \"{databaseName}\" is already attached !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } OpenFileDialog dialog = new OpenFileDialog() { Filter = "XML files (*.xml)|*.xml", Multiselect = false, InitialDirectory = Module.ModuleCatalogPath }; if (dialog.ShowDialog() == false) { return; } try { File.Copy(dialog.FileName, metadataFilePath, true); Module.Metadata.UseServer(serverName); Module.Metadata.UseDatabase(databaseName); Module.SaveMetadataSettings(Module.Metadata.Settings); } catch (Exception ex) { //TODO: File.Delete(metadataFilePath); ??? MessageBox.Show(ex.Message, "1C#", MessageBoxButton.OK, MessageBoxImage.Error); return; } CreateDatabaseNode(Module.Metadata.CurrentDatabase, out TreeNodeViewModel databaseNode); databaseNode.IsExpanded = true; parentNode.IsExpanded = true; parentNode.TreeNodes.Add(databaseNode); }