private void UpdateDyntaxaSpeciesFacts(WebSpeciesFact speciesFact)
        {
            List <WebSpeciesFact> speciesFacts;

            speciesFacts = new List <WebSpeciesFact>();
            speciesFacts.Add(speciesFact);
            SpeciesFactManager.UpdateDyntaxaSpeciesFacts(GetContext(), null, null, speciesFacts, "Dyntaxa Kindvall");
        }
        public void UpdateDyntaxaSpeciesFacts()
        {
            DateTime oldUpdateDate;
            Double   doubleValue;
            Int32    oldReferenceId, oldQualityId;
            List <WebSpeciesFact> oldSpeciesFacts;
            List <WebSpeciesFact> speciesFacts;
            String         oldUpdateUser;
            String         stringValue;
            WebReference   reference;
            WebSpeciesFact speciesFact;

            // Delete species facts.
            oldSpeciesFacts = GetSomeSpeciesFacts(GetContext());
            oldUpdateUser   = oldSpeciesFacts[0].UpdateUserFullName;
            Assert.IsTrue(oldSpeciesFacts.IsNotEmpty());
            SpeciesFactManager.UpdateDyntaxaSpeciesFacts(GetContext(), null, oldSpeciesFacts, null, "Dyntaxa Test");
            speciesFacts = GetSomeSpeciesFacts(GetContext());
            Assert.IsTrue(speciesFacts.IsEmpty());

            // Create species facts.
            SpeciesFactManager.UpdateDyntaxaSpeciesFacts(GetContext(), oldSpeciesFacts, null, null, "Dyntaxa Test");
            speciesFacts = GetSomeSpeciesFacts(GetContext());
            Assert.IsTrue(speciesFacts.IsNotEmpty());
            Assert.AreEqual(oldSpeciesFacts.Count, speciesFacts.Count);

            // Test change of reference id.
            speciesFact             = GetOneSpeciesFact(GetContext());
            oldReferenceId          = speciesFact.ReferenceId;
            reference               = ReferenceManager.GetReferences(GetContext())[3];
            speciesFact.ReferenceId = reference.Id;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.AreNotEqual(oldReferenceId, speciesFact.ReferenceId);
            Assert.AreEqual(reference.Id, speciesFact.ReferenceId);

            // Test change of update date.
            oldUpdateDate = speciesFact.UpdateDate;
            Thread.Sleep(200);
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsTrue(oldUpdateDate <= speciesFact.UpdateDate);

            // Test change of update user.
            Assert.AreNotEqual(oldUpdateUser, speciesFact.UpdateUserFullName);

            // Test change of field values.
            doubleValue                        = 4324;
            speciesFact.FieldValue1            = doubleValue;
            speciesFact.IsFieldValue1Specified = true;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsTrue(speciesFact.IsFieldValue1Specified);
            Assert.AreEqual(doubleValue, speciesFact.FieldValue1);

            doubleValue                       *= Math.PI;
            speciesFact.FieldValue2            = doubleValue;
            speciesFact.IsFieldValue2Specified = true;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsTrue(speciesFact.IsFieldValue2Specified);
            Assert.IsTrue((doubleValue - speciesFact.FieldValue2) < 0.0001);

            doubleValue                       *= Math.PI;
            speciesFact.FieldValue3            = doubleValue;
            speciesFact.IsFieldValue3Specified = true;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsTrue(speciesFact.IsFieldValue3Specified);
            Assert.IsTrue((doubleValue - speciesFact.FieldValue3) < 0.0001);

            stringValue                        = null;
            speciesFact.FieldValue4            = stringValue;
            speciesFact.IsFieldValue4Specified = false;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsFalse(speciesFact.IsFieldValue4Specified);
            Assert.IsNull(speciesFact.FieldValue4);
            stringValue                        = "testing time";
            speciesFact.FieldValue4            = stringValue;
            speciesFact.IsFieldValue4Specified = true;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsTrue(speciesFact.IsFieldValue4Specified);
            Assert.AreEqual(stringValue, speciesFact.FieldValue4);

            stringValue                        = null;
            speciesFact.FieldValue5            = stringValue;
            speciesFact.IsFieldValue5Specified = false;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsFalse(speciesFact.IsFieldValue5Specified);
            Assert.IsNull(speciesFact.FieldValue5);
            stringValue                        = "testing time";
            speciesFact.FieldValue5            = stringValue;
            speciesFact.IsFieldValue5Specified = true;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.IsTrue(speciesFact.IsFieldValue5Specified);
            Assert.AreEqual(stringValue, speciesFact.FieldValue5);

            // Test change of quality.
            oldQualityId           = speciesFact.QualityId;
            speciesFact.QualityId += 1;
            UpdateDyntaxaSpeciesFacts(speciesFact);
            speciesFact = GetSpeciesFact(speciesFact);
            Assert.AreNotEqual(oldQualityId, speciesFact.QualityId);
            Assert.AreEqual(oldQualityId + 1, speciesFact.QualityId);
        }