/// <summary> /// Check that data is valid. /// </summary> public override void CheckData() { base.CheckData(); if (Factors.IsNotEmpty()) { foreach (WebFactor factor in Factors) { factor.CheckData(); } } if (IndividualCategories.IsNotEmpty()) { foreach (WebIndividualCategory individualCategory in IndividualCategories) { individualCategory.CheckData(); } } if (SpeciesFactFieldConditions.IsNotEmpty()) { foreach (WebSpeciesFactFieldCondition speciesFactFieldCondition in SpeciesFactFieldConditions) { speciesFactFieldCondition.CheckData(); } } if (Periods.IsNotEmpty()) { foreach (WebPeriod period in Periods) { period.CheckData(); } } }
/// <summary> /// Refresh cached data. /// </summary> /// <param name="userContext">User context.</param> protected override void RefreshCache(IUserContext userContext) { lock (FactorOrigins) { FactorOrigins.Clear(); } lock (FactorUpdateModes) { FactorUpdateModes.Clear(); } lock (FactorFieldTypes) { FactorFieldTypes.Clear(); } lock (PeriodTypes) { PeriodTypes.Clear(); } lock (Periods) { Periods.Clear(); } lock (IndividualCategories) { IndividualCategories.Clear(); } lock (FactorFieldEnums) { FactorFieldEnums.Clear(); } lock (FactorDataTypes) { FactorDataTypes.Clear(); } lock (Factors) { Factors.Clear(); } lock (FactorTrees) { FactorTrees.Clear(); } lock (FactorTreeNodes) { FactorTreeNodes.Clear(); } lock (OrganismGroups) { OrganismGroups.Clear(); } }
/// <summary> /// Add individual category to search criteria. /// </summary> /// <param name="individualCategory">The individual category.</param> public void Add(IIndividualCategory individualCategory) { if (IndividualCategories.IsNull()) { IndividualCategories = new IndividualCategoryList(); } IndividualCategories.Add(individualCategory); }
/// <summary> /// Get individual categories for specified locale. /// </summary> /// <param name="locale">Locale.</param> /// <returns>Individual categories for specified locale.</returns> protected virtual IndividualCategoryList GetIndividualCategories(ILocale locale) { IndividualCategoryList individualCategories = null; if (IndividualCategories.ContainsKey(locale.ISOCode)) { individualCategories = (IndividualCategoryList)(IndividualCategories[locale.ISOCode]); } return(individualCategories); }
/// <summary> /// Get individual categories for specified locale. /// </summary> /// <param name="locale">Locale.</param> /// <returns>Individual categories for specified locale.</returns> protected override IndividualCategoryList GetIndividualCategories(ILocale locale) { IndividualCategoryList individualCategories = null; lock (IndividualCategories) { if (IndividualCategories.ContainsKey(locale.ISOCode)) { individualCategories = (IndividualCategoryList)(IndividualCategories[locale.ISOCode]); } } return(individualCategories); }
/// <summary> /// Refresh cached data. /// </summary> /// <param name="userContext">User context.</param> protected virtual void RefreshCache(IUserContext userContext) { FactorOrigins.Clear(); FactorUpdateModes.Clear(); FactorFieldTypes.Clear(); PeriodTypes.Clear(); Periods.Clear(); IndividualCategories.Clear(); FactorFieldEnums.Clear(); FactorDataTypes.Clear(); Factors.Clear(); FactorTrees.Clear(); FactorTreeNodes.Clear(); OrganismGroups.Clear(); }
/// <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); } } } }