public void GetNatura2000Taxa()
        {
            Data.ArtDatabankenService.Factor factor;
            SpeciesFactCondition             speciesFactCondition;
            SpeciesFactFieldCondition        speciesFactFieldCondition;

            Data.ArtDatabankenService.TaxonList taxa;

            speciesFactCondition = new SpeciesFactCondition();
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Natura2000BirdsDirective);
            speciesFactCondition.Factors.Add(factor);
            speciesFactCondition.Factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Natura2000HabitatsDirectiveArticle2));
            speciesFactCondition.Factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Natura2000HabitatsDirectiveArticle4));
            speciesFactCondition.Factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Natura2000HabitatsDirectiveArticle5));
            speciesFactCondition.IndividualCategories.Add(IndividualCategoryManager.GetDefaultIndividualCategory());
            speciesFactFieldCondition             = new SpeciesFactFieldCondition();
            speciesFactFieldCondition.FactorField = factor.FactorDataType.Field1;
            speciesFactFieldCondition.SetValue(true);
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            // The merge is necessary if there are problems in Dyntaxa.
            taxa = new Data.ArtDatabankenService.TaxonList();
            taxa.Merge(Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, TaxonInformationType.Basic));
            Assert.IsTrue(taxa.IsNotEmpty());
            Assert.AreEqual(308, taxa.Count);
        }
        public void GetActionPlanTaxa()
        {
            Data.ArtDatabankenService.Factor          factor;
            Data.ArtDatabankenService.FactorFieldEnum factorFieldEnum;
            SpeciesFactCondition      speciesFactCondition;
            SpeciesFactFieldCondition speciesFactFieldCondition;

            Data.ArtDatabankenService.TaxonList taxa;

            speciesFactCondition = new SpeciesFactCondition();
            // factor = FactorManager.GetFactor(FactorId.ActionPlan);
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(2017);
            speciesFactCondition.Factors.Add(factor);
            speciesFactCondition.IndividualCategories.Add(IndividualCategoryManager.GetDefaultIndividualCategory());
            factorFieldEnum = factor.FactorDataType.Field1.FactorFieldEnum;
            foreach (FactorFieldEnumValue enumValue in factorFieldEnum.Values)
            {
                speciesFactFieldCondition             = new SpeciesFactFieldCondition();
                speciesFactFieldCondition.FactorField = factor.FactorDataType.Field1;
                speciesFactFieldCondition.SetValue(enumValue.KeyInt);
                speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);
            }

            // The merge is necessary if there are problems in Dyntaxa.
            taxa = new Data.ArtDatabankenService.TaxonList();
            taxa.Merge(Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, TaxonInformationType.Basic));
            Assert.IsTrue(taxa.IsNotEmpty());
            Assert.AreEqual(1, taxa.Count);
        }
        public void GetRelistedTaxa()
        {
            Data.ArtDatabankenService.Factor factor;
            RedListCategoryEnum       redListCategory;
            SpeciesFactCondition      speciesFactCondition;
            SpeciesFactFieldCondition speciesFactFieldCondition;

            Data.ArtDatabankenService.TaxonList taxa;

            speciesFactCondition = new SpeciesFactCondition();
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.RedlistCategory);
            speciesFactCondition.Factors.Add(factor);
            speciesFactCondition.IndividualCategories.Add(IndividualCategoryManager.GetDefaultIndividualCategory());
            speciesFactCondition.Periods.Add(PeriodManager.GetCurrentPublicPeriod());

            for (redListCategory = RedListCategoryEnum.DD; redListCategory <= RedListCategoryEnum.NT; redListCategory++)
            {
                speciesFactFieldCondition             = new SpeciesFactFieldCondition();
                speciesFactFieldCondition.FactorField = factor.FactorDataType.Field1;
                speciesFactFieldCondition.SetValue((Int32)redListCategory);
                speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);
            }

            // The merge is necessary if there are problems in Dyntaxa.
            taxa = new Data.ArtDatabankenService.TaxonList();
            taxa.Merge(Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, TaxonInformationType.Basic));
            Assert.IsTrue(taxa.IsNotEmpty());
            Assert.AreEqual(4261, taxa.Count);
        }
        public void GetTaxaByQuery()
        {
            Data.ArtDatabankenService.Factor      factor;
            Data.ArtDatabankenService.FactorField factorField;
            SpeciesFactCondition      speciesFactCondition;
            SpeciesFactFieldCondition speciesFactFieldCondition;
            TaxonInformationType      taxonInformationType;

            Data.ArtDatabankenService.TaxonList taxa;

            taxonInformationType = TaxonInformationType.Basic;

            // Test one factor.
            speciesFactCondition = new SpeciesFactCondition();
            speciesFactCondition.Factors.Add(FactorManagerTest.GetOneFactor());
            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test several factors.
            speciesFactCondition = new SpeciesFactCondition();
            speciesFactCondition.Factors.AddRange(FactorManagerTest.GetSomeFactors());
            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test one period.
            speciesFactCondition = new SpeciesFactCondition();
            speciesFactCondition.Factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.RedlistCategory));
            speciesFactCondition.Periods.Add(PeriodManager.GetPeriod(PeriodId.Year2005));
            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test several periods.
            speciesFactCondition = new SpeciesFactCondition();
            speciesFactCondition.Factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.RedlistCategory));
            speciesFactCondition.Periods.AddRange(PeriodManager.GetPeriods());
            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test one species fact field enum (KeyInt) condition.
            speciesFactCondition = new SpeciesFactCondition();
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Redlist_OrganismLabel1);
            Assert.IsTrue(taxa.IsNotEmpty());
            speciesFactCondition.Factors.Add(factor);
            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[3].KeyInt);
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);
            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test several species fact field enum (KeyInt) conditions.
            speciesFactCondition = new SpeciesFactCondition();
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Redlist_OrganismLabel1);
            Assert.IsTrue(taxa.IsNotEmpty());
            speciesFactCondition.Factors.Add(factor);

            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[3].KeyInt);
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[4].KeyInt);
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[5].KeyInt);
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            taxa = ArtDatabanken.Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test one species fact field enum (KeyText) condition.
            speciesFactCondition = new SpeciesFactCondition();
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Redlist_TaxonType);
            Assert.IsTrue(taxa.IsNotEmpty());
            speciesFactCondition.Factors.Add(factor);
            speciesFactCondition.Periods.Add(PeriodManager.GetPeriod(2));
            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[0].KeyText);
            speciesFactFieldCondition.IsEnumAsString = true;
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);
            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());

            // Test several species fact field enum (KeyText) condition.
            speciesFactCondition = new SpeciesFactCondition();
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.Redlist_TaxonType);
            Assert.IsTrue(taxa.IsNotEmpty());
            speciesFactCondition.Factors.Add(factor);
            speciesFactCondition.Periods.Add(PeriodManager.GetPeriod(2));

            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[0].KeyText);
            speciesFactFieldCondition.IsEnumAsString = true;
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[1].KeyText);
            speciesFactFieldCondition.IsEnumAsString = true;
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            speciesFactFieldCondition = new SpeciesFactFieldCondition();
            factorField = factor.FactorDataType.MainField;
            speciesFactFieldCondition.FactorField = factorField;
            speciesFactFieldCondition.SetValue(factorField.FactorFieldEnum.Values[2].KeyText);
            speciesFactFieldCondition.IsEnumAsString = true;
            speciesFactCondition.SpeciesFactFieldConditions.Add(speciesFactFieldCondition);

            taxa = Data.ArtDatabankenService.TaxonManager.GetTaxaByQuery(speciesFactCondition, taxonInformationType);
            Assert.IsTrue(taxa.IsNotEmpty());
        }