public void ToggleFactors(IEnumerable <IFactor> factors, bool on) { if (on) { foreach (var factor in factors) { if (!Factors.Contains(factor)) { Factors.Add(factor); } } } else { foreach (var factor in factors) { if (Factors.Contains(factor)) { Factors.Remove(factor); } } } }
/// <summary> /// Remove old species facts that are no longer /// included in the species fact scope. /// </summary> private void RemoveSpeciesFactsNotInScope() { Int32 index; ISpeciesFact speciesFact; if (SpeciesFacts.IsNotEmpty()) { for (index = SpeciesFacts.Count - 1; index >= 0; index--) { speciesFact = SpeciesFacts[index]; if ((!Factors.Contains(speciesFact.Factor)) || (!IndividualCategories.Contains(speciesFact.IndividualCategory)) || (!Taxa.Contains(speciesFact.Taxon)) || (speciesFact.HasHost && !Hosts.Contains(speciesFact.Host)) || (speciesFact.HasPeriod && !Periods.Contains(speciesFact.Period))) { // This species fact is no longer // included in the species fact scope. SpeciesFacts.RemoveAt(index); } } } }