コード例 #1
0
        /// <summary>
        ///		Exporta la tabla de datos
        /// </summary>
        private void Export()
        {
            if (DataResults == null || DataResults.Rows.Count == 0)
            {
                SolutionViewModel.MainViewModel.MainController.HostController.SystemController.ShowMessage("No hay datos para exportar");
            }
            else
            {
                string fileName = SolutionViewModel.MainViewModel.OpenDialogSave("Query.csv", "Archivos CSV (*.csv)|*.csv|Todos los archivos (*.*)|*.*", ".csv");

                if (!string.IsNullOrEmpty(fileName))
                {
                    using (LibLogger.Models.Log.BlockLogModel block = SolutionViewModel.MainViewModel.Manager.Logger.Default.
                                                                      CreateBlock(LibLogger.Models.Log.LogModel.LogType.Debug,
                                                                                  $"Comienzo de grabación del archivo {fileName}"))
                    {
                        // Graba el archivo
                        try
                        {
                            // Graba la tabla de datos en el archivo
                            new LibCsvFiles.Controllers.CsvDataTableWriter().Save(DataResults, fileName);
                            // Log
                            block.Debug("Fin de grabación del archivo");
                        }
                        catch (Exception exception)
                        {
                            block.Error($"Error al grabar el archivo {fileName}. {exception.Message}");
                        }
                        // Envía el log
                        SolutionViewModel.MainViewModel.MainController.Logger.Flush();
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        ///		Ejecuta el script
        /// </summary>
        internal async Task ExecuteScriptAsync(ConnectionModel connection, Application.Connections.Models.ArgumentListModel arguments,
                                               System.Threading.CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(Content))
            {
                SolutionViewModel.MainViewModel.MainController.HostController.SystemController.ShowMessage("Introduzca una consulta para ejecutar");
            }
            else if (connection == null)
            {
                SolutionViewModel.MainViewModel.MainController.HostController.SystemController.ShowMessage("Seleccione una conexión");
            }
            else
            {
                using (LibLogger.Models.Log.BlockLogModel block = SolutionViewModel.MainViewModel.Manager.Logger.Default.CreateBlock(LibLogger.Models.Log.LogModel.LogType.Info,
                                                                                                                                     $"Comienza la ejecución de la consulta"))
                {
                    string selectedText = GetEditorSelectedText();

                    // Ejecuta la consulta
                    if (!string.IsNullOrEmpty(selectedText))
                    {
                        await SolutionViewModel.MainViewModel.Manager.ExecuteQueryAsync(connection, selectedText, arguments,
                                                                                        connection.TimeoutExecuteScript, cancellationToken);
                    }
                    else
                    {
                        await SolutionViewModel.MainViewModel.Manager.ExecuteQueryAsync(connection, Content, arguments,
                                                                                        connection.TimeoutExecuteScript, cancellationToken);
                    }
                    // Muestra el tiempo de ejecución
                    block.Info($"Tiempo de ejecución: {SolutionViewModel.ConnectionExecutionViewModel.ExecutionTime}");
                }
            }
        }
コード例 #3
0
        /// <summary>
        ///		Graba el archivo
        /// </summary>
        public void SaveDetails(bool newName)
        {
            if (DataResults == null || DataResults.Rows.Count == 0)
            {
                SolutionViewModel.MainController.HostController.SystemController.ShowMessage("No hay datos para exportar");
            }
            else
            {
                string fileName = SolutionViewModel.MainController.DialogsController
                                  .OpenDialogSave(string.Empty,
                                                  $"Archivos {ExportFilesExtensions} (*.{ExportFilesExtensions})|*.{ExportFilesExtensions}" +
                                                  "|Todos los archivos (*.*)|*.*",
                                                  $"New file.{ExportFilesExtensions}",
                                                  $".{ExportFilesExtensions}");

                if (!string.IsNullOrEmpty(fileName))
                {
                    using (LibLogger.Models.Log.BlockLogModel block = SolutionViewModel.Manager.Logger.Default.
                                                                      CreateBlock(LibLogger.Models.Log.LogModel.LogType.Debug,
                                                                                  $"Comienzo de grabación del archivo {fileName}"))
                    {
                        // Graba el archivo
                        try
                        {
                            Task.Run(() => SaveFile(block, fileName));
                        }
                        catch (Exception exception)
                        {
                            block.Error($"Error al grabar el archivo {fileName}. {exception.Message}");
                            SolutionViewModel.MainController.HostController.SystemController.ShowMessage($"Error al grabar el archivo {fileName}. {exception.Message}");
                        }
                    }
                }
            }
        }
コード例 #4
0
        /// <summary>
        ///		Graba el archivo
        /// </summary>
        protected override void SaveFile(LibLogger.Models.Log.BlockLogModel block, string fileName)
        {
            LibCsvFiles.Controllers.CsvDataReaderWriter writer = new LibCsvFiles.Controllers.CsvDataReaderWriter();

            // Escribe el archivo
            using (ParquetDataReader reader = new ParquetDataReader(FileName))
            {
                // Log
                writer.Progress += (sender, args) => block.Progress(System.IO.Path.GetFileName(fileName), args.Records, args.Records + 1);
                // Escribe el archivo
                writer.Save(reader, fileName);
            }
            // Log
            block.Progress(System.IO.Path.GetFileName(fileName), 0, 0);
            block.Info($"Fin de la grabación del archivo '{fileName}'");
            SolutionViewModel.MainController.Logger.Flush();
        }
コード例 #5
0
 /// <summary>
 ///		Graba el archivo
 /// </summary>
 protected override void SaveFile(LibLogger.Models.Log.BlockLogModel block, string fileName)
 {
     // Graba el archivo
     using (CsvReader reader = new CsvReader(FileName, FileParameters, FileColumns))
     {
         using (ParquetWriter writer = new ParquetWriter(fileName))
         {
             // Log
             writer.Progress += (sender, args) => block.Progress(System.IO.Path.GetFileName(fileName), args.Records, args.Records + 1);
             // Escribe el archivo
             writer.Write(reader);
         }
     }
     // Log
     block.Progress(System.IO.Path.GetFileName(fileName), 0, 0);
     block.Info($"Fin de la grabación del archivo '{fileName}'");
     SolutionViewModel.MainController.Logger.Flush();
 }
コード例 #6
0
        /// <summary>
        ///		Ejecuta el script
        /// </summary>
        internal async Task ExecuteSqlScriptAsync(ConnectionModel connection, ArgumentListModel arguments, System.Threading.CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(Content))
            {
                SolutionViewModel.MainController.SystemController.ShowMessage("Introduzca una consulta para ejecutar");
            }
            else if (connection == null)
            {
                SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione una conexión");
            }
            else
            {
                using (LibLogger.Models.Log.BlockLogModel block = SolutionViewModel.Manager.Logger.Default.CreateBlock(LibLogger.Models.Log.LogModel.LogType.Info,
                                                                                                                       $"Comienza la ejecución de la consulta"))
                {
                    string selectedText = GetEditorSelectedText();

                    // Si no hay nada seleccionado, se ejecuta todo el contenido
                    if (string.IsNullOrWhiteSpace(selectedText))
                    {
                        selectedText = Content;
                    }
                    // Ejecuta la consulta
                    if (FileName.EndsWith(".sql", StringComparison.CurrentCultureIgnoreCase))
                    {
                        await SolutionViewModel.Manager.ExecuteQueryAsync(connection, selectedText, arguments,
                                                                          connection.TimeoutExecuteScript, cancellationToken);
                    }
                    else if (FileName.EndsWith(".sqlx", StringComparison.CurrentCultureIgnoreCase))
                    {
                        await SolutionViewModel.Manager.ExecuteInterpretedQueryAsync(connection, selectedText, arguments, cancellationToken);
                    }
                    else
                    {
                        block.Error("No se reconoce el tipo de archivo como SQL");
                    }
                    // Muestra el tiempo de ejecución
                    block.Info($"Tiempo de ejecución: {SolutionViewModel.ConnectionExecutionViewModel.ExecutionTime}");
                }
            }
        }
コード例 #7
0
        /// <summary>
        ///		Graba el archivo
        /// </summary>
        protected override void SaveFile(LibLogger.Models.Log.BlockLogModel block, string fileName)
        {
            ExcelDataTableReader excelReader = new ExcelDataTableReader();
            long rows = excelReader.CountRows(FileName, 1, true);

            // Graba el archivo
            using (IDataReader reader = excelReader.LoadFile(FileName, 1, 0, rows, true).CreateDataReader())
            {
                using (ParquetWriter writer = new ParquetWriter(fileName))
                {
                    // Log
                    writer.Progress += (sender, args) => block.Progress(System.IO.Path.GetFileName(fileName), args.Records, args.Records + 1);
                    // Escribe el archivo
                    writer.Write(reader);
                }
            }
            // Log
            block.Progress(System.IO.Path.GetFileName(fileName), 0, 0);
            block.Info($"Fin de la grabación del archivo '{fileName}'");
            SolutionViewModel.MainController.Logger.Flush();
        }
コード例 #8
0
 /// <summary>
 ///		Graba el archivo
 /// </summary>
 protected abstract void SaveFile(LibLogger.Models.Log.BlockLogModel block, string fileName);