Exemple #1
0
 /// <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();
         }
     }
 }
Exemple #2
0
        /// <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);
        }
Exemple #5
0
        /// <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);
                    }
                }
            }
        }