private void removeFieldsFromAnalysis(IPopulationAnalysisField field, PopulationAnalysis populationAnalysis) { var allDerivedFields = populationAnalysis.AllFieldsReferencing(field); allDerivedFields.Each(populationAnalysis.Remove); populationAnalysis.Remove(field); }
private bool fieldForOutputWasRemoved <TField>(TField field, Cache <string, string> keyPathCache, PopulationAnalysis populationAnalysis, List <string> allErrors) where TField : IQuantityField { //check that the quantity is also available var path = pathFrom(field.QuantityPath, field.QuantityType); if (keyPathCache.Contains(path)) { return(false); } populationAnalysis.Remove(field); allErrors.Add(PKSimConstants.Error.QuantityNotFoundWillBeRemovedFromAnalysis(field.QuantityPath)); return(true); }
private void synchronizeCovariates(PopulationAnalysis populationAnalysis, IPopulationDataCollector populationDataCollector, List <string> allErrors) { //ToList() because we are removing in the iteration foreach (var covariateField in populationAnalysis.AllFields.OfType <PopulationAnalysisCovariateField>().ToList()) { if (populationDataCollector.AllCovariateNames.Contains(covariateField.Covariate)) { continue; } populationAnalysis.Remove(covariateField); allErrors.Add(PKSimConstants.Error.CovariateNotFoundWillBeRemovedFromAnalysis(covariateField.Covariate)); } }
private void synchronizeParameters(PopulationAnalysis populationAnalysis, IPopulationDataCollector populationDataCollector, List <string> allErrors) { var allParameters = _entitiesInContainerRetriever.ParametersFrom(populationDataCollector); //ToList() because we are removing in the iteration foreach (var parameterField in populationAnalysis.AllFields.OfType <PopulationAnalysisParameterField>().ToList()) { if (allParameters.Contains(parameterField.ParameterPath)) { continue; } populationAnalysis.Remove(parameterField); allErrors.Add(PKSimConstants.Error.ParameterNotFoundWillBeRemovedFromAnalysis(parameterField.ParameterPath)); } }
private void synchronizeOutputs(PopulationAnalysis populationAnalysis, IPopulationDataCollector populationDataCollector, List <string> allErrors) { var statiscalAnalsysis = populationAnalysis as PopulationStatisticalAnalysis; var keyPathCache = outputKeyPathCacheFor(populationDataCollector); foreach (var outputField in populationAnalysis.AllFields.OfType <PopulationAnalysisOutputField>().ToList()) { if (statiscalAnalsysis == null) { populationAnalysis.Remove(outputField); allErrors.Add(PKSimConstants.Error.OutputFieldCannotBeUsedInAnalysis(outputField.Name)); continue; } if (fieldForOutputWasRemoved(outputField, keyPathCache, populationAnalysis, allErrors)) { continue; } } }
private void synchronizePKParameters(PopulationAnalysis populationAnalysis, IPopulationDataCollector populationDataCollector, List <string> allErrors) { //path where compound name has been removed var keyPathCache = outputKeyPathCacheFor(populationDataCollector); foreach (var pkParameterField in populationAnalysis.AllFields.OfType <PopulationAnalysisPKParameterField>().ToList()) { if (fieldForOutputWasRemoved(pkParameterField, keyPathCache, populationAnalysis, allErrors)) { continue; } var path = pathFrom(pkParameterField.QuantityPath, pkParameterField.QuantityType); //quantity was found. Yet it's not over. We need to verify that the pk parameter is also available pkParameterField.QuantityPath = keyPathCache[path]; if (!populationDataCollector.HasPKParameterFor(pkParameterField.QuantityPath, pkParameterField.PKParameter)) { populationAnalysis.Remove(pkParameterField); allErrors.Add(PKSimConstants.Error.PKParameterWasNotCalculatedForQuantity(pkParameterField.PKParameter, pkParameterField.QuantityPath)); } } }
public virtual void RemoveField(IPopulationAnalysisField populationAnalysisField) { if (populationAnalysisField == null) { return; } var allDerivedFields = _populationAnalysis.AllFieldsReferencing(populationAnalysisField); if (allDerivedFields.Any()) { var res = _dialogCreator.MessageBoxYesNo(PKSimConstants.UI.ReallyRemoveFieldUsedInGrouping(populationAnalysisField.Name, allDerivedFields.Select(x => x.Name))); if (res == ViewResult.No) { return; } } _populationAnalysis.Remove(populationAnalysisField); allDerivedFields.Each(_populationAnalysis.Remove); _eventPublisher.PublishEvent(new FieldRemovedFromPopulationAnalysisEvent(_populationAnalysis, populationAnalysisField)); UpdateView(); }