Beispiel #1
0
        /// <summary>
        /// Get information about taxa with a protection level
        /// that is higher than public.
        /// </summary>
        /// <param name="includeSubTaxa">If true, all sub taxa are included in the result.</param>
        /// <param name="taxonInformationType">Type of taxa information to get.</param>
        /// <returns>Information about protected taxa.</returns>
        public static TaxonList GetProtectedTaxa(Boolean includeSubTaxa,
                                                 TaxonInformationType taxonInformationType)
        {
            Factor                     factor;
            List <WebTaxon>            webTaxa;
            SpeciesFactCondition       speciesFactCondition;
            SpeciesFactFieldCondition  speciesFactFieldCondition;
            SpeciesProtectionLevelEnum protectionLevel;
            WebDataQuery               webDataQuery;

            // Create data query.
            speciesFactCondition = new SpeciesFactCondition();
            factor = FactorManager.GetFactor(FactorId.ProtectionLevel);
            speciesFactCondition.Factors.Add(factor);

            for (protectionLevel = SpeciesProtectionLevelEnum.Protected1;
                 protectionLevel <= SpeciesProtectionLevelEnum.MaxProtected;
                 protectionLevel++)
            {
                speciesFactFieldCondition             = new SpeciesFactFieldCondition();
                speciesFactFieldCondition.FactorField = factor.FactorDataType.Field1;
                speciesFactFieldCondition.SetValue((Int32)protectionLevel);
                speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);
            }

            // Get data from web service.
            webDataQuery = GetDataQuery(speciesFactCondition);
            webTaxa      = WebServiceClient.GetTaxaByQuery(webDataQuery, taxonInformationType);
            return(GetTaxa(webTaxa));
        }
        /// <summary>
        /// Convert an SpeciesFactFieldCondition to a WebSpeciesFactFieldCondition.
        /// </summary>
        /// <param name="speciesFactFieldCondition">The species fact field condition.</param>
        /// <returns>A WebSpeciesFactFieldCondition.</returns>
        private static WebSpeciesFactFieldCondition GetSpeciesFactFieldCondition(SpeciesFactFieldCondition speciesFactFieldCondition)
        {
            WebSpeciesFactFieldCondition webSpeciesFactFieldCondition;

            webSpeciesFactFieldCondition                = new WebSpeciesFactFieldCondition();
            webSpeciesFactFieldCondition.FactorField    = FactorManager.GetFactorField(speciesFactFieldCondition.FactorField);
            webSpeciesFactFieldCondition.IsEnumAsString = speciesFactFieldCondition.IsEnumAsString;
#if DATA_SPECIFIED_EXISTS
            webSpeciesFactFieldCondition.IsEnumAsStringSpecified = true;
#endif
            webSpeciesFactFieldCondition.Operator = speciesFactFieldCondition.Operator;
#if DATA_SPECIFIED_EXISTS
            webSpeciesFactFieldCondition.OperatorSpecified = true;
#endif
            webSpeciesFactFieldCondition.Value = speciesFactFieldCondition.Value;

            return(webSpeciesFactFieldCondition);
        }