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);
        }