private async Task <IEnumerable <Model.Simulation> > allSmulationsFrom(Simulation[] snapshots, ModelProject project) { var simulations = new List <Model.Simulation>(); if (snapshots == null) { return(simulations); } //do not run tasks in parallel as the same mapper instance may be used concurrently to load two different snapshots foreach (var snapshot in snapshots) { try { var simulation = await _simulationMapper.MapToModel(snapshot, project); simulations.Add(simulation); } catch (Exception e) { _logger.AddException(e); _logger.AddError(PKSimConstants.Error.CannotLoadSimulation(snapshot.Name)); } } return(simulations); }
private async Task <IEnumerable <Model.Simulation> > allSimulationsFrom(ModelProject project, ProjectContext projectContext, Simulation[] snapshots, SnapshotContext snapshotContext) { var simulations = new List <Model.Simulation>(); if (snapshots == null) { return(simulations); } var simulationContext = new SimulationContext(projectContext.RunSimulations, snapshotContext) { NumberOfSimulationsToLoad = snapshots.Length, NumberOfSimulationsLoaded = 1 }; //do not run tasks in parallel as the same mapper instance may be used concurrently to load two different snapshots foreach (var snapshot in snapshots) { try { var simulation = await _simulationMapper.MapToModel(snapshot, simulationContext); simulations.Add(simulation); simulationContext.NumberOfSimulationsLoaded++; } catch (Exception e) { _logger.AddException(e); _logger.AddError(PKSimConstants.Error.CannotLoadSimulation(snapshot.Name)); } } return(simulations); }