public Task Export(Simulation simulation, string outputFolder, SimulationExportMode simulationExportMode, string projectName = null) { var tasks = new List <Task>(); var individualSimulation = simulation as IndividualSimulation; var populationSimulation = simulation as PopulationSimulation; if (simulationExportMode.HasFlag(SimulationExportMode.Csv) && individualSimulation != null) { tasks.Add(exporIndividualSimulationToCsvAsync(individualSimulation, outputFolder, projectName)); } if (simulationExportMode.HasFlag(SimulationExportMode.Csv) && populationSimulation != null) { tasks.Add(exportPopulationSimulationToCsvAsync(populationSimulation, outputFolder, projectName)); } if (simulationExportMode.HasFlag(SimulationExportMode.Json) && individualSimulation != null) { tasks.Add(exportResultsToJsonAsync(individualSimulation, outputFolder, projectName)); } if (simulationExportMode.HasFlag(SimulationExportMode.Xml)) { tasks.Add(exportSimModelXmlAsync(simulation, outputFolder, projectName)); } if (simulationExportMode.HasFlag(SimulationExportMode.Pkml)) { tasks.Add(exportSimulationPkmlAsync(simulation, outputFolder, projectName)); } return(Task.WhenAll(tasks)); }
private void createSummaryFilesIn(DirectoryInfo outputDirectory, SimulationExportMode exportMode) { if (!exportMode.HasFlag(SimulationExportMode.Csv)) { return; } var dataTable = new DataTable(outputDirectory.Name); dataTable.Columns.Add("Sim_id", typeof(string)); foreach (var simulationName in _allSimulationNames) { var row = dataTable.NewRow(); row[0] = simulationName; dataTable.Rows.Add(row); } var fileName = Path.Combine(outputDirectory.FullName, $"{outputDirectory.Name}.csv"); if (FileHelper.FileExists(fileName)) { var tmp = FileHelper.FileNameFromFileFullPath(FileHelper.GenerateTemporaryFileName()); tmp = Path.Combine(outputDirectory.FullName, $"{tmp}.csv"); _logger.AddWarning($"File '{fileName}' already exists and will be saved under '{tmp}'"); fileName = tmp; } _logger.AddDebug($"Exporting simulation file names to '{fileName}'"); dataTable.ExportToCSV(fileName); }