/// <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); }