public void GetTaxaBySearchCritera()
        {
            List <Int32>           taxonIds;
            List <WebTaxon>        taxa;
            String                 taxonName;
            WebTaxonSearchCriteria searchCriteria;

            // Search by taxon name.
            taxonName      = "trumgräshoppa";
            searchCriteria = new WebTaxonSearchCriteria();
            searchCriteria.TaxonNameSearchString = new WebStringSearchCriteria();
            searchCriteria.TaxonNameSearchString.SearchString = taxonName;
            taxa = WebServiceProxy.TaxonService.GetTaxaBySearchCriteria(GetClientInformation(), searchCriteria);
            Assert.IsNotNull(taxa);
            Assert.AreEqual(taxonName, taxa[0].CommonName);

            // Search by taxon ids.
            taxonIds = new List <Int32>();
            taxonIds.Add((Int32)(TaxonId.Bear));
            taxonIds.Add((Int32)(TaxonId.Bears));
            taxonIds.Add((Int32)(TaxonId.Beaver));
            taxonIds.Add((Int32)(TaxonId.Butterflies));
            taxonIds.Add((Int32)(TaxonId.DrumGrasshopper));
            taxonIds.Add((Int32)(TaxonId.GreenhouseMoths));
            taxonIds.Add((Int32)(TaxonId.Hedgehog));
            taxonIds.Add((Int32)(TaxonId.Life));
            taxonIds.Add((Int32)(TaxonId.Lynx));
            taxonIds.Add((Int32)(TaxonId.Mammals));
            searchCriteria = new WebTaxonSearchCriteria();
            searchCriteria.IsIsValidTaxonSpecified = true;
            searchCriteria.IsValidTaxon            = true;
            searchCriteria.TaxonIds = taxonIds;
            taxa = WebServiceProxy.TaxonService.GetTaxaBySearchCriteria(GetClientInformation(), searchCriteria);
            Assert.IsTrue(taxa.IsNotEmpty());
            Assert.AreEqual(10, taxa.Count);
            Assert.IsNotNull(taxa[0].CreatedDate);
            Assert.IsNotNull(taxa[1].Guid);
            Assert.AreNotEqual(taxa[9].Id, taxa[8].Id);

            // Check taxon categories set
            // TODO Update this test when we can create taxon with properties so that categories can be set....
            // Create initial data..
            List <Int32> taxonCategoryIdList = new List <int>();

            taxonCategoryIdList.Add(111111);
            searchCriteria.TaxonNameSearchString = null;
            searchCriteria.TaxonIds         = null;
            searchCriteria.TaxonCategoryIds = taxonCategoryIdList;
            taxa = WebServiceProxy.TaxonService.GetTaxaBySearchCriteria(GetClientInformation(), searchCriteria);

            Assert.IsNotNull(taxa);
            Assert.AreEqual(0, taxa.Count);
        }
Esempio n. 2
0
        public void GetDictionary()
        {
            Dictionary <Int32, WebTaxon> taxonDictionary;
            List <WebTaxon>        taxa;
            WebTaxonSearchCriteria searchCriteria;

            searchCriteria = new WebTaxonSearchCriteria();
            searchCriteria.IsIsValidTaxonSpecified = true;
            searchCriteria.IsValidTaxon            = true;
            searchCriteria.Scope    = TaxonSearchScope.AllChildTaxa;
            searchCriteria.TaxonIds = new List <Int32>();
            searchCriteria.TaxonIds.Add((Int32)(TaxonId.Mammals));
            taxa            = GetTaxonManager(true).GetTaxaBySearchCriteria(Context, searchCriteria);
            taxonDictionary = GetTaxonManager().GetDictionary(taxa);
            Assert.IsTrue(taxonDictionary.IsNotEmpty());
            Assert.AreEqual(taxa.Count, taxonDictionary.Count);
            Assert.IsTrue(taxonDictionary.ContainsKey((Int32)(TaxonId.Mammals)));
        }
Esempio n. 3
0
        /// <summary>
        /// Convert TaxonSearchCriteria to WebTaxonSearchCriteria.
        /// </summary>
        /// <param name="searchCriteria">A TaxonSearchCriteria instance.</param>
        /// <returns>A WebTaxonSearchCriteria instance.</returns>
        private static WebTaxonSearchCriteria GetTaxonSearchCriteria(TaxonSearchCriteria searchCriteria)
        {
            WebTaxonSearchCriteria webSearchCriteria;

            webSearchCriteria = new WebTaxonSearchCriteria();
            webSearchCriteria.RestrictReturnToScope = searchCriteria.RestrictReturnToScope;
#if DATA_SPECIFIED_EXISTS
            webSearchCriteria.RestrictReturnToScopeSpecified = true;
#endif
            webSearchCriteria.RestrictReturnToSwedishSpecies = searchCriteria.RestrictReturnToSwedishSpecies;
#if DATA_SPECIFIED_EXISTS
            webSearchCriteria.RestrictReturnToSwedishSpeciesSpecified = true;
#endif
            if (searchCriteria.RestrictReturnToTaxonTypeIds.IsNotNull())
            {
                webSearchCriteria.RestrictReturnToTaxonTypeIds = searchCriteria.RestrictReturnToTaxonTypeIds;
            }
            webSearchCriteria.RestrictSearchToSwedishSpecies = searchCriteria.RestrictSearchToSwedishSpecies;
#if DATA_SPECIFIED_EXISTS
            webSearchCriteria.RestrictSearchToSwedishSpeciesSpecified = true;
#endif
            if (searchCriteria.RestrictSearchToTaxonIds.IsNotNull())
            {
                webSearchCriteria.RestrictSearchToTaxonIds = searchCriteria.RestrictSearchToTaxonIds;
            }
            if (searchCriteria.RestrictSearchToTaxonTypeIds.IsNotNull())
            {
                webSearchCriteria.RestrictSearchToTaxonTypeIds = searchCriteria.RestrictSearchToTaxonTypeIds;
            }
            webSearchCriteria.TaxonInformationType = searchCriteria.TaxonInformationType;
#if DATA_SPECIFIED_EXISTS
            webSearchCriteria.TaxonInformationTypeSpecified = true;
#endif
            webSearchCriteria.TaxonNameSearchString = searchCriteria.TaxonNameSearchString;
            return(webSearchCriteria);
        }
        public void GetTaxaBySearchCriteria()
        {
            List <WebTaxon>        taxa;
            List <Int32>           taxonIds;
            List <Int32>           taxonTypeIds;
            WebTaxonSearchCriteria searchCriteria;

            foreach (TaxonInformationType taxonInformationType in Enum.GetValues(typeof(TaxonInformationType)))
            {
                for (TaxonSearchScope taxonReturnScope = TaxonSearchScope.NoScope; taxonReturnScope <= TaxonSearchScope.AllChildTaxa; taxonReturnScope++)
                {
                    searchCriteria = new WebTaxonSearchCriteria();
                    searchCriteria.TaxonInformationType  = taxonInformationType;
                    searchCriteria.RestrictReturnToScope = taxonReturnScope;

                    searchCriteria.RestrictSearchToTaxonIds       = null;
                    searchCriteria.RestrictSearchToTaxonTypeIds   = null;
                    searchCriteria.TaxonNameSearchString          = "björn";
                    searchCriteria.RestrictSearchToSwedishSpecies = true;
                    taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
                    Assert.IsTrue(taxa.IsNotEmpty());
                    Assert.AreEqual(taxa.Count, 1);

                    searchCriteria.RestrictSearchToTaxonIds       = null;
                    searchCriteria.RestrictSearchToTaxonTypeIds   = null;
                    searchCriteria.TaxonNameSearchString          = "björn%";
                    searchCriteria.RestrictSearchToSwedishSpecies = false;
                    taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
                    Assert.IsNotNull(taxa);
                    Assert.IsTrue(taxa.IsNotEmpty());
                    Assert.IsTrue(taxa.Count > 1);

                    searchCriteria.RestrictSearchToTaxonIds       = GetSomeTaxonIds();
                    searchCriteria.RestrictSearchToTaxonTypeIds   = null;
                    searchCriteria.TaxonNameSearchString          = "bäver%";
                    searchCriteria.RestrictSearchToSwedishSpecies = true;
                    taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
                    Assert.IsNotNull(taxa);
                    Assert.IsTrue(taxa.IsNotEmpty());
                    Assert.AreEqual(taxa.Count, 1);

                    searchCriteria.RestrictSearchToTaxonIds       = null;
                    searchCriteria.RestrictSearchToTaxonTypeIds   = null;
                    searchCriteria.TaxonNameSearchString          = "blåvingad sandgräshoppa";
                    searchCriteria.RestrictReturnToSwedishSpecies = true;
                    taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
                    Assert.IsTrue(taxa.IsEmpty());

                    searchCriteria.RestrictSearchToTaxonIds       = null;
                    searchCriteria.RestrictSearchToTaxonTypeIds   = GetTaxonTypeIds();
                    searchCriteria.TaxonNameSearchString          = "%björn%";
                    searchCriteria.RestrictSearchToSwedishSpecies = true;
                    taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
                    Assert.IsNotNull(taxa);
                    Assert.IsTrue(taxa.IsNotEmpty());
                    Assert.IsTrue(taxa.Count > 1);
                }
            }

            // Test bugg were not valid taxa
            // (not valid today but has been valid before)
            // is included in the result.
            searchCriteria = new WebTaxonSearchCriteria();
            searchCriteria.RestrictReturnToScope = TaxonSearchScope.AllChildTaxa;
            taxonIds = new List <Int32>();
            taxonIds.Add(217177); // Vägbjörnmossa
            searchCriteria.RestrictSearchToTaxonIds = taxonIds;
            taxonTypeIds = new List <Int32>();
            taxonTypeIds.Add(SPECIES_TAXON_TYPE_ID);
            searchCriteria.RestrictReturnToTaxonTypeIds = taxonTypeIds;
            taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsNotNull(taxa);
            Assert.IsTrue(taxa.IsEmpty());

            // Test getting parent taxa.
            searchCriteria = new WebTaxonSearchCriteria();
            searchCriteria.TaxonInformationType  = TaxonInformationType.Basic;
            searchCriteria.RestrictReturnToScope = TaxonSearchScope.AllParentTaxa;
            searchCriteria.TaxonNameSearchString = "björn";
            taxa = TaxonManager.GetTaxaBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(taxa.IsNotEmpty());
        }