private IPKSimCommand extractIndividualFrom(Population population, int individualId, IEnumerable <IParameter> allParametersOrderedByFormulaType, IndividualExtractionOptions individualExtractionOptions) { if (population.NumberOfItems <= individualId) { return(new PKSimEmptyCommand()); } var individual = _executionContext.Clone(population.FirstIndividual) .WithName(createIndividualName(population, individualId, individualExtractionOptions)); var extractedIndividualParameterCache = new PathCache <IParameter>(_entityPathResolver).For(individual.GetAllChildren <IParameter>()); foreach (var parameter in allParametersOrderedByFormulaType) { updateParameterValue(population, individualId, parameter, extractedIndividualParameterCache); } var originData = individual.OriginData; updateOriginDataFromIndividual(individual, originData); // TODO // originData.Gender = population.AllGenders[individualId]; // originData.SpeciesPopulation = population.AllRaces[individualId]; return(_individualTask.AddToProject(individual, editBuildingBlock: false, addToHistory: false)); }
public ISimulationSubject AddToProject() { using (var presenter = _applicationController.Start <ISimulationSubjectSelectionPresenter>()) { if (!presenter.ChooseSimulationSubject()) { return(null); } if (presenter.SimulationSubjetType.IsAnImplementationOf <Population>()) { return(_populationTask.AddToProject()); } return(_individualTask.AddToProject()); } }