/// <summary>
        ///		Convierte un archivo parquet a csv
        /// </summary>
        internal async Task <bool> ConvertAsync(BlockLogModel block, string source, string target, CancellationToken cancellationToken)
        {
            bool converted = false;

            // Convierte el archivo
            try
            {
                LibCsvFiles.Controllers.CsvDataReaderWriter writer = new LibCsvFiles.Controllers.CsvDataReaderWriter();

                // Evita el error de await
                await Task.Delay(1);

                // Crea el directorio de salida
                LibHelper.Files.HelperFiles.MakePath(System.IO.Path.GetDirectoryName(target));
                // Escribe el archivo
                using (LibParquetFiles.Readers.ParquetDataReader reader = new LibParquetFiles.Readers.ParquetDataReader(source))
                {
                    writer.Save(reader, target);
                }
                // Indica que se ha convertido
                converted = true;
            }
            catch (Exception exception)
            {
                block.Error($"Error when convert '{source}' to '{target}'", exception);
            }
            // Devuelve el valor que indica si se ha convertido
            return(converted);
        }
        /// <summary>
        ///		Exporta la tabla a CSV
        /// </summary>
        private async Task ExportToCsvAsync(BlockLogModel block, string fileName, DbDataReader reader, CancellationToken cancellationToken)
        {
            LibCsvFiles.Controllers.CsvDataReaderWriter writer = new LibCsvFiles.Controllers.CsvDataReaderWriter();

            // Asigna el evento de progreso
            writer.Progress += (sender, args) => block.Progress(System.IO.Path.GetFileName(fileName), args.Records, args.Records + 1);
            // Graba el archivo
            await writer.SaveAsync(reader, fileName, cancellationToken);
        }
Beispiel #3
0
        /// <summary>
        ///		Graba el archivo
        /// </summary>
        protected override void SaveFile(string targetFileName)
        {
            LibCsvFiles.Controllers.CsvDataReaderWriter writer = new LibCsvFiles.Controllers.CsvDataReaderWriter();

            // Escribe el archivo
            using (ParquetDataReader reader = new ParquetDataReader(FileName))
            {
                writer.Save(reader, targetFileName);
            }
        }
Beispiel #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();
        }