/// <summary> /// Get all child taxa. /// Parent taxa are also included in the result. /// </summary> /// <param name="context">Web service request context.</param> /// <param name="parentTaxonGuids">GUIDs for parent taxa.</param> /// <returns>All child taxa.</returns> private List <WebTaxon> GetChildTaxaByGuids(WebServiceContext context, List <String> parentTaxonGuids) { List <Int32> parentTaxonIds; WebTaxonSearchCriteria searchCriteria; // Convert taxon GUIDs to taxon ids. parentTaxonIds = new List <Int32>(); if (parentTaxonGuids.IsNotEmpty()) { foreach (String parentTaxonGuid in parentTaxonGuids) { // TODO: This assumption about taxon GUIDs may // change in the future. parentTaxonIds.Add(parentTaxonGuid.WebParseInt32()); } } // Create search criteria. searchCriteria = new WebTaxonSearchCriteria(); searchCriteria.IsIsValidTaxonSpecified = true; searchCriteria.IsValidTaxon = true; searchCriteria.Scope = TaxonSearchScope.AllChildTaxa; searchCriteria.TaxonIds = parentTaxonIds; // Get child taxa. return(GetTaxaBySearchCriteria(context, searchCriteria)); }
/// <summary> /// Get taxa by SearchCriteria. /// </summary> /// <param name="context">Web service request context.</param> /// <param name="searchCriteria">Search criteria.</param> /// <returns>List of taxons.</returns> public virtual List <WebTaxon> GetTaxaBySearchCriteria(WebServiceContext context, WebTaxonSearchCriteria searchCriteria) { WebClientInformation clientInformation = GetClientInformation(context, WebServiceId.TaxonService); List <WebTaxon> taxa = new List <WebTaxon>(); if (searchCriteria.IsNotNull()) { taxa = WebServiceProxy.TaxonService.GetTaxaBySearchCriteria(clientInformation, searchCriteria); } return(taxa); }