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