private async Task TestScalarResultsProcessing(FileInfo scalarResults, FileInfo scalarResultsMetadata) { if (!scalarResults.Exists) { this.logger.LogWarning("Scalar results file not found: {FilePath}", scalarResults.FullName); return; } if (!scalarResultsMetadata.Exists) { this.logger.LogWarning("Scalar results metadata file not found: {FilePath}", scalarResultsMetadata.FullName); return; } var scalarResultsContent = File.ReadAllText(scalarResults.FullName); var scalarResultsMetadataContent = File.ReadAllText(scalarResultsMetadata.FullName); this.logger.LogInformation("ScalarResultsProcessing Started"); var sw = Stopwatch.StartNew(); var result = await WriteCombinedStudyScalarData.GetStudyScalarResultsFromMergedFiles(new MemoryFile(scalarResultsContent), new MemoryFile(scalarResultsMetadataContent)); sw.Stop(); this.logger.LogInformation("Parsed {ChannelCount} channels", result.Count); if (result.Count > 0) { this.logger.LogInformation("First channel {Name} has {Count} points", result[0].Name, result[0].Data.Count); } this.logger.LogInformation("ScalarResultsProcessing: {Time}", sw.Elapsed); }
public async Task ExecuteAsync( IRootFolder root, IFileWriter writer, bool channelsAsCsv, bool deleteProcessedFiles, int parallelism) { var studyScalarFiles = new StudyScalarFiles(); var channelDataColumns = new ChannelDataColumns(); var allFiles = await root.GetFilesAsync(); var filesToWrite = new List <IFile>(); foreach (var file in allFiles) { try { TryAddFileToStudyScalarResults.Execute(file, studyScalarFiles); if (channelsAsCsv && TryGetChannelMetadata.Execute(file, out var channelMetadata)) { channelDataColumns.Add(new CsvColumn(channelMetadata, file)); } else { filesToWrite.Add(file); } } catch (Exception t) { Console.WriteLine(); Console.WriteLine("Failed to process file: " + file); Console.WriteLine(t); if (t is AbortProcessingException) { throw; } } } await filesToWrite.ForEachAsync(parallelism, async file => { await writer.WriteExistingFile(root, file); }); await WriteChannelDataAsCsv.ExecuteAsync(root, writer, deleteProcessedFiles, parallelism, channelDataColumns); await WriteCombinedStudyScalarData.ExecuteAsync(root, writer, studyScalarFiles); }