private void CreateTestCodeEditor(object parameter) { DomainConcept concept = new DomainConcept(); CodeEditor editor = new CodeEditor() { DataContext = SyntaxTreeController.Current.CreateSyntaxNode(null, concept) }; Shell.AddTabItem("DDL SCRIPT", editor); }
private void CreateCodeEditor(object parameter) { ScriptConcept script = new ScriptConcept(); CodeEditor editor = new CodeEditor() { DataContext = SyntaxTreeController.Current.CreateSyntaxNode(null, script) }; Shell.AddTabItem("SCRIPT", editor); }
private void OpenScript(object parameter) { OpenFileDialog dialog = new OpenFileDialog() { Multiselect = false, InitialDirectory = ModuleCatalogPath, Filter = "Script files (.json)|*.json" }; var result = dialog.ShowDialog(); if (result != true) { return; } string filePath = dialog.FileName; string json = File.ReadAllText(filePath); if (string.IsNullOrWhiteSpace(json)) { return; } SyntaxTreeJsonSerializer _serializer = new SyntaxTreeJsonSerializer(); var knownTypes = _serializer.Binder.KnownTypes; foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies() .Where(a => a.FullName.StartsWith("OneCSharp") && a.GetName().Name.EndsWith("Model"))) { foreach (Type type in assembly.GetTypes() .Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(SyntaxNode)))) { knownTypes.Add(type.FullName, type); } } if (knownTypes.Count == 0) { return; } SyntaxNode syntaxNode = _serializer.FromJson(json); CodeEditor editor = new CodeEditor() { DataContext = SyntaxTreeController.Current.CreateSyntaxNode(null, syntaxNode) }; Shell.AddTabItem("SCRIPT FROM FILE", editor); }
private void Translate(object parameter) { Metadata.UseServer(Settings.DataHost); Metadata.UseDatabase(Settings.Database); string sql = Scripting.PrepareScript(QueryScript, out IList <ParseError> errors); string errorMessage = string.Empty; foreach (ParseError error in errors) { errorMessage += error.Message + Environment.NewLine; } if (errors.Count > 0) { QueryEditorView view = new QueryEditorView() { DataContext = new QueryEditorViewModel(Shell, Settings, FileFullPath, Metadata, Scripting) { QueryScript = errorMessage } }; Shell.AddTabItem("Errors", view); } else { FileInfo file = new FileInfo(FileFullPath); string fileFullPath = Path.ChangeExtension(FileFullPath, "sql"); QueryEditorView view = new QueryEditorView() { DataContext = new QueryEditorViewModel(Shell, Settings, fileFullPath, Metadata, Scripting) { QueryScript = sql } }; Shell.AddTabItem(Path.ChangeExtension(file.Name, "sql"), view); } }
private void Execute(object parameter) { string errorMessage = string.Empty; Metadata.UseServer(Settings.DataHost); Metadata.UseDatabase(Settings.Database); string sql; FileInfo file = new FileInfo(FileFullPath); if (file.Extension == ".sql") { sql = QueryScript; } else { sql = Scripting.PrepareScript(QueryScript, out IList <ParseError> errors); foreach (ParseError error in errors) { errorMessage += error.Message + Environment.NewLine; } if (errors.Count > 0) { QueryEditorView errorsView = new QueryEditorView() { DataContext = new QueryEditorViewModel(Shell, Settings, FileFullPath, Metadata, Scripting) { QueryScript = errorMessage } }; Shell.AddTabItem("Errors", errorsView); return; } } string json = "[]"; try { json = Scripting.ExecuteScript(sql, out IList <ParseError> executeErrors); foreach (ParseError error in executeErrors) { errorMessage += error.Message + Environment.NewLine; } if (executeErrors.Count > 0) { QueryEditorView errorsView = new QueryEditorView() { DataContext = new QueryEditorViewModel(Shell, Settings, FileFullPath, Metadata, Scripting) { QueryScript = errorMessage } }; Shell.AddTabItem("Errors", errorsView); return; } } catch (Exception ex) { QueryEditorView errorsView = new QueryEditorView() { DataContext = new QueryEditorViewModel(Shell, Settings, FileFullPath, Metadata, Scripting) { QueryScript = ex.Message } }; Shell.AddTabItem("Error", errorsView); return; } JsonSerializerOptions serializerOptions = new JsonSerializerOptions(); serializerOptions.Converters.Add(new DynamicJsonConverter()); dynamic data = JsonSerializer.Deserialize <dynamic>(json, serializerOptions); //QueryEditorView view = new QueryEditorView() //{ // DataContext = new QueryEditorViewModel(Shell, Settings, FileFullPath, Metadata, Scripting) { QueryScript = json } //}; //Grid view = CreateDynamicGrid(data); DataGrid view = CreateDynamicDataGrid(data); Shell.AddTabItem($"{file.Name} - result", view); }