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 static Data.ArtDatabankenService.SpeciesFactList GetRedListSpeciesFacts()
        {
            Data.ArtDatabankenService.FactorList redlistRootFactors;
            List <Int32> redlistRootFactorIds;

            Data.ArtDatabankenService.SpeciesFactList speciesFacts;
            Data.ArtDatabankenService.TaxonList       taxa;
            UserParameterSelection userParameterSelection;

            // Get red list factors.
            redlistRootFactorIds = new List <Int32>();
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup1_GenerealFactors);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup2_PopulationReduction);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup3_PopulationSize);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup4_PopulationDistribution);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup5_QuantitativeAnalysis);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup6_RegionalImplications);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup7_Results);
            redlistRootFactorIds.Add((Int32)FactorId.RedlistFactorGroup8_RedlistChanges);
            redlistRootFactors = Data.ArtDatabankenService.FactorManager.GetFactors(redlistRootFactorIds);

            // Get taxa.
            taxa = new Data.ArtDatabankenService.TaxonList();
            taxa.Add(Data.ArtDatabankenService.TaxonManager.GetTaxon(BEAR_TAXON_ID, TaxonInformationType.Basic));

            // Get species facts.
            userParameterSelection = new UserParameterSelection();
            userParameterSelection.Factors.Merge(redlistRootFactors);
            userParameterSelection.Taxa.Merge(taxa);
            speciesFacts = Data.ArtDatabankenService.SpeciesFactManager.GetSpeciesFactsByUserParameterSelection(userParameterSelection);

            return(speciesFacts);
        }
        public void GetProtectedByLawTaxa()
        {
            Data.ArtDatabankenService.Factor factor;
            SpeciesFactCondition             speciesFactCondition;

            Data.ArtDatabankenService.TaxonList taxa;

            speciesFactCondition = new SpeciesFactCondition();
            //factor = FactorManager.GetFactor(FactorId.ProtectedByLaw);
            factor = Data.ArtDatabankenService.FactorManager.GetFactor(2009);
            speciesFactCondition.Factors.Add(factor);
            speciesFactCondition.IndividualCategories.Add(IndividualCategoryManager.GetDefaultIndividualCategory());

            // 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(508, taxa.Count);
        }
        public void GetDyntaxaSpeciesFactsByUserParameterSelection()
        {
            Data.ArtDatabankenService.FactorList factors;
            Int32 count;

            Data.ArtDatabankenService.SpeciesFactList speciesFacts;
            Data.ArtDatabankenService.TaxonList       taxa;
            UserParameterSelection userParmeterSelection;

            Data.ArtDatabankenService.Taxon lumpedTaxon = Data.ArtDatabankenService.TaxonManager.GetTaxon((Int32)(TaxonId.Bear), TaxonInformationType.Basic);

            userParmeterSelection = new UserParameterSelection();
            factors = new Data.ArtDatabankenService.FactorList();
            factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.SwedishOccurrence));
            factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.SwedishHistory));
            factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.QualityInDyntaxa));
            factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.NumberOfSwedishSpecies));
            factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.BanndedForReporting));
            factors.Add(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.ExcludeFromReportingSystem));

            taxa = new Data.ArtDatabankenService.TaxonList();
            taxa.Add(lumpedTaxon);

            userParmeterSelection.Taxa.Merge(taxa);
            speciesFacts = Data.ArtDatabankenService.SpeciesFactManager.GetDyntaxaSpeciesFactsByUserParameterSelection(userParmeterSelection);
            Assert.IsTrue(speciesFacts.IsNotEmpty());
            count = speciesFacts.Count;

            userParmeterSelection.Factors.Merge(factors);
            speciesFacts = Data.ArtDatabankenService.SpeciesFactManager.GetDyntaxaSpeciesFactsByUserParameterSelection(userParmeterSelection);
            if (speciesFacts.IsNotEmpty())
            {
                Assert.IsTrue(count > speciesFacts.Count);
            }



            //TestUpdateSpeciesFacts
            Data.ArtDatabankenService.SpeciesFact numberOfSpecies1 = speciesFacts.GetSpeciesFactsByParameters(Data.ArtDatabankenService.FactorManager.GetFactor(Data.ArtDatabankenService.FactorId.NumberOfSwedishSpecies))[0];
            Int32 testValue     = 1001;
            Int32 originalValue = Int32.MinValue;

            if (numberOfSpecies1.MainField.HasValue)
            {
                originalValue = numberOfSpecies1.MainField.Int32Value;
            }
            numberOfSpecies1.MainField.Value = testValue;

            //This is the critical part of the test but as the method should be restricted to Dyntaxa it is not possible to run it by EVA. Change Application to Dyntaxa in testBase

            /*
             * using (WebTransaction transaction = new WebTransaction(5))
             * {
             *  SpeciesFactManager.UpdateDyntaxaSpeciesFacts(speciesFacts, ReferenceManagerTest.GetAReference(), "DyntaxaTestPerson");
             *  speciesFacts = SpeciesFactManager.GetDyntaxaSpeciesFactsByUserParameterSelection(userParmeterSelection);
             *  numberOfSpecies2 = speciesFacts.GetSpeciesFactsByParameters(ArtDatabanken.Data.ArtDatabankenService.FactorManager.GetFactor(FactorId.NumberOfSwedishSpecies))[0];
             *  savedValue = numberOfSpecies2.MainField.Int32Value;
             * }
             * Assert.AreNotEqual(originalValue, savedValue);
             * Assert.AreEqual(testValue, savedValue);
             * Assert.AreEqual("DyntaxaTestPerson", numberOfSpecies2.UpdateUserFullName);
             */
        }