Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        private async Task runAndExportSimulationsInSnapshotFile(FileInfo projectFile, string outputFolder, SimulationExportMode simulationExportMode)
        {
            _logger.AddInfo($"Starting batch simulation export for file '{projectFile}'");
            try
            {
                var project = await _snapshotTask.LoadProjectFromSnapshot(projectFile.FullName);

                var simulations         = project.All <Simulation>();
                var numberOfSimulations = simulations.Count;
                _logger.AddInfo($"{numberOfSimulations} {"simulation".PluralizeIf(numberOfSimulations)} found in file '{projectFile}'");

                foreach (var simulation in simulations)
                {
                    _logger.AddDebug($"Starting batch simulation export for simulation '{simulation.Name}'");

                    await _simulationExporter.RunAndExport(simulation, outputFolder, _simulationRunOptions, simulationExportMode, FileHelper.FileNameFromFileFullPath(projectFile.FullName));

                    _allSimulationNames.Add(simulation.Name);
                }
            }
            catch (Exception e)
            {
                _logger.AddException(e);
            }
        }
Beispiel #4
0
        public async Task RunAndExport(Simulation simulation, string outputFolder, SimulationRunOptions simulationRunOptions, SimulationExportMode simulationExportMode, string projectName = null)
        {
            _logger.AddDebug($"Running simulation '{simulation.Name}'");
            await _simulationRunner.RunSimulation(simulation, simulationRunOptions);

            await Export(simulation, outputFolder, simulationExportMode, projectName);
        }