/// <summary> /// Method that returns a filtered version of this species fact list. The filtering is done on factors /// </summary> /// <param name="factors"></param> /// <returns>A filtered SpeciesFactList</returns> public SpeciesFactList FilterSpeciesFacts(FactorList factors) { if (factors == null) { throw new ArgumentException("FactorList is null", "factors"); } SpeciesFactList filteredList = new SpeciesFactList(); //if (originalList.Count > factors.Count) { foreach (SpeciesFact fact in this) { foreach (Factor factor in factors) { if (fact.Factor.Id == factor.Id) { filteredList.Add(fact); break; } } } } return(filteredList); }
/// <summary> /// Create a SpeciesFactCondition instance. /// </summary> public SpeciesFactCondition() : base(DataQueryType.SpeciesFactCondition) { Factors = new FactorList(); Periods = new PeriodList(); IndividualCategories = new IndividualCategoryList(); SpeciesFactFieldConditions = new List <SpeciesFactFieldCondition>(); }
/// <summary> /// Create a user parameter selection instance. /// </summary> public UserParameterSelection() { _factors = new FactorList(true); _hosts = new TaxonList(true); _individualCategories = new IndividualCategoryList(true); _periods = new PeriodList(true); _references = new ReferenceList(true); _taxa = new TaxonList(true); }
/// <summary> /// Add factors to the data identifier list. /// </summary> /// <param name='factors'>Factors.</param> public void AddRange(FactorList factors) { if (factors.IsNotEmpty()) { foreach (Factor factor in factors) { Add(factor); } } }
/// <summary> /// Get a subset of this factor list by search string /// </summary> /// <param name="searchString">Search string</param> /// <param name="comparisonType">Type of string comparison</param> /// <returns>A factor list</returns> public FactorList GetFactorsBySearchString(String searchString, StringComparison comparisonType) { FactorList factors = new FactorList(); var subset = from Factor factor in this where factor.Label.StartsWith(searchString, comparisonType) orderby factor.Label ascending select factor; factors.AddRange(subset.ToArray()); return(factors); }
/// <summary> /// Get all child factors that belongs to this factor tree node. /// The factor for this tree node is also included in the result. /// </summary> public FactorList GetAllChildFactors() { FactorList factors; factors = new FactorList(); factors.Add(Factor); if (_children.IsNotEmpty()) { foreach (FactorTreeNode child in _children) { factors.AddRange(child.GetAllChildFactors()); } } return(factors); }
/// <summary> /// Private constructor. Makes a clone of a UserParameterSelection. /// </summary> /// <param name="userParameterSelection">UserParameterSelection to clone</param> private UserParameterSelection(UserParameterSelection userParameterSelection) { _factors = new FactorList(true); _factors.AddRange(userParameterSelection.Factors); _hosts = new TaxonList(true); _hosts.AddRange(userParameterSelection.Hosts); _individualCategories = new IndividualCategoryList(true); _individualCategories.AddRange(userParameterSelection.IndividualCategories); _periods = new PeriodList(true); _periods.AddRange(userParameterSelection.Periods); _references = new ReferenceList(true); _references.AddRange(userParameterSelection.References); _taxa = new TaxonList(true); _taxa.AddRange(userParameterSelection.Taxa); }
/// <summary> /// Get all child factors that belongs to this factor tree node. /// The factor for this tree node may also /// be included in the result. /// </summary> public FactorList GetAllLeafFactors() { FactorList leafs; leafs = new FactorList(); if (_children.IsEmpty()) { leafs.Add(Factor); } else { foreach (FactorTreeNode child in _children) { leafs.AddRange(child.GetAllLeafFactors()); } } return(leafs); }
/// <summary> /// Method that returns a filtered version of this species fact list. The filtering is done on several parameters. /// </summary> /// <param name="individualCategories"></param> /// <param name="periods"></param> /// <param name="hosts"></param> /// <param name="taxa"></param> /// <param name="factors"></param> /// <returns>A filtered SpeciesFactList</returns> public SpeciesFactList FilterSpeciesFacts( IndividualCategoryList individualCategories, PeriodList periods, TaxonList hosts, TaxonList taxa, FactorList factors) { SpeciesFactList filteredList = new SpeciesFactList(); foreach (SpeciesFact fact in this) { bool go = true; if (fact.IndividualCategory != null) { if ((individualCategories != null) && (individualCategories.Count > 0)) { if (!individualCategories.Exists(fact.IndividualCategory)) { go = false; } } } if (go) { if (fact.Period != null) { if ((periods != null) && (periods.Count > 0)) { if (!periods.Exists(fact.Period)) { go = false; } } } } if (go) { if (fact.Host != null) { // For the time being we only accept species facts that dont have a host. go = false; //if ((hosts != null) && (hosts.Count > 0)) //{ // if (!hosts.Exists(fact.Host)) // go = false; //} } } if (go) { if (fact.Taxon != null) { if ((taxa != null) && (taxa.Count > 0)) { if (!taxa.Exists(fact.Taxon)) { go = false; } } } } if (go) { if (fact.Factor != null) { if ((factors != null) && (factors.Count > 0)) { if (!factors.Exists(fact.Factor)) { go = false; } } } } if (go) { filteredList.Add(fact); } } return(filteredList); }
/// <summary> /// Get all factors that have an impact on this factors value. /// Only factors that are automatically calculated /// has dependent factors. /// </summary> /// <returns>Dependent factors.</returns> public FactorList GetDependentFactors() { FactorList factors; factors = new FactorList(); switch (Id) { case ((Int32)FactorId.RedListCategoryAutomatic): case ((Int32)FactorId.RedListCriteriaDocumentationAutomatic): case ((Int32)FactorId.RedListCriteriaAutomatic): factors.Add(FactorManager.GetFactor(FactorId.AreaOfOccupancy_B2Estimated)); factors.Add(FactorManager.GetFactor(FactorId.ConservationDependent)); factors.Add(FactorManager.GetFactor(FactorId.ContinuingDecline)); factors.Add(FactorManager.GetFactor(FactorId.ContinuingDeclineBasedOn_Bbi)); factors.Add(FactorManager.GetFactor(FactorId.ContinuingDeclineBasedOn_Bbii)); factors.Add(FactorManager.GetFactor(FactorId.ContinuingDeclineBasedOn_Bbiii)); factors.Add(FactorManager.GetFactor(FactorId.ContinuingDeclineBasedOn_Bbiv)); factors.Add(FactorManager.GetFactor(FactorId.ContinuingDeclineBasedOn_Bbv)); factors.Add(FactorManager.GetFactor(FactorId.ExtentOfOccurrence_B1Estimated)); factors.Add(FactorManager.GetFactor(FactorId.ExtremeFluctuations)); factors.Add(FactorManager.GetFactor(FactorId.ExtremeFluctuationsIn_Bci)); factors.Add(FactorManager.GetFactor(FactorId.ExtremeFluctuationsIn_Bcii)); factors.Add(FactorManager.GetFactor(FactorId.ExtremeFluctuationsIn_Bciii)); factors.Add(FactorManager.GetFactor(FactorId.ExtremeFluctuationsIn_Bciv)); factors.Add(FactorManager.GetFactor(FactorId.Grading)); factors.Add(FactorManager.GetFactor(FactorId.MaxProportionLocalPopulation)); factors.Add(FactorManager.GetFactor(FactorId.MaxSizeLocalPopulation)); factors.Add(FactorManager.GetFactor(FactorId.NumberOfLocations)); factors.Add(FactorManager.GetFactor(FactorId.PopulationSize_Total)); factors.Add(FactorManager.GetFactor(FactorId.ProbabilityOfExtinction)); factors.Add(FactorManager.GetFactor(FactorId.RedlistEvaluationProgressionStatus)); factors.Add(FactorManager.GetFactor(FactorId.Reduction_A1)); factors.Add(FactorManager.GetFactor(FactorId.Reduction_A2)); factors.Add(FactorManager.GetFactor(FactorId.Reduction_A3)); factors.Add(FactorManager.GetFactor(FactorId.Reduction_A4)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A1a)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A1b)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A1c)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A1d)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A1e)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A2a)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A2b)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A2c)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A2d)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A2e)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A3b)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A3c)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A3d)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A3e)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A4a)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A4b)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A4c)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A4d)); factors.Add(FactorManager.GetFactor(FactorId.ReductionBasedOn_A4e)); factors.Add(FactorManager.GetFactor(FactorId.SeverelyFragmented)); factors.Add(FactorManager.GetFactor(FactorId.SwedishOccurrence)); factors.Add(FactorManager.GetFactor(FactorId.VeryRestrictedArea_D2VU)); if (Id == ((Int32)FactorId.RedListCriteriaDocumentationAutomatic)) { factors.Add(FactorManager.GetFactor(FactorId.RedListCriteriaDocumentationIntroduction)); factors.Add(FactorManager.GetFactor(FactorId.GlobalRedlistCategory)); factors.Add(FactorManager.GetFactor(FactorId.GenerationTime)); factors.Add(FactorManager.GetFactor(FactorId.LastEncounter)); factors.Add(FactorManager.GetFactor(FactorId.ImmigrationOccurs)); } break; } return(factors); }