/// <summary>
 /// Set species observation field descriptions.
 /// </summary>
 /// <param name="speciesObservationFieldDescriptions">Species observation field descriptions.</param>
 /// <param name="isoCode">Language ISO code.</param>
 protected override void SetSpeciesObservationFieldDescriptions(SpeciesObservationFieldDescriptionList speciesObservationFieldDescriptions, string isoCode)
 {
     lock (this)
     {
         base.SetSpeciesObservationFieldDescriptions(speciesObservationFieldDescriptions, isoCode);
     }
 }
 /// <summary>
 /// Set species observation field descriptions.
 /// </summary>
 /// <param name="speciesObservationFieldDescriptions">Species observation field descriptions.</param>
 /// <param name="isoCode">language ISO code</param>
 protected virtual void SetSpeciesObservationFieldDescriptions(SpeciesObservationFieldDescriptionList speciesObservationFieldDescriptions, string isoCode)
 {
     if (SpeciesObservationFieldDescriptions == null)
     {
         SpeciesObservationFieldDescriptions = new Dictionary <string, SpeciesObservationFieldDescriptionList>();
     }
     SpeciesObservationFieldDescriptions.Add(isoCode, speciesObservationFieldDescriptions);
 }
        /// <summary>
        /// Get all species observation field descriptions.
        /// </summary>
        /// <param name="isoCode">language ISO code.</param>
        /// <returns>All species observation field descriptions.</returns>
        protected virtual SpeciesObservationFieldDescriptionList GetSpeciesObservationFieldDescriptions(string isoCode)
        {
            SpeciesObservationFieldDescriptionList speciesObservationFieldDescriptions = null;

            if (SpeciesObservationFieldDescriptions != null)
            {
                SpeciesObservationFieldDescriptions.TryGetValue(isoCode, out speciesObservationFieldDescriptions);
            }

            return(speciesObservationFieldDescriptions);
        }
        /// <summary>
        /// Retrieve all Species Observation Field Descriptions.
        /// </summary>
        /// <param name="userContext">User context.</param>
        /// <param name="includeClassDescriptions">Indication of whether or not class information should be included.</param>
        /// <returns>A Species Observation Field Description List.</returns>
        private SpeciesObservationFieldDescriptionList GetSpeciesObservationFieldDescriptions(IUserContext userContext,
                                                                                              Boolean includeClassDescriptions)
        {
            if (includeClassDescriptions)
            {
                return(this.SpeciesObservationDataSource.GetSpeciesObservationFieldDescriptions(userContext));
            }
            else
            {
                SpeciesObservationFieldDescriptionList list     = new SpeciesObservationFieldDescriptionList(true);
                SpeciesObservationFieldDescriptionList fullList = this.SpeciesObservationDataSource.GetSpeciesObservationFieldDescriptions(userContext);
                foreach (SpeciesObservationFieldDescription item in fullList)
                {
                    if (!item.IsClass)
                    {
                        list.Add(item);
                    }
                }

                return(list);
            }
        }