/// <summary>
        /// Inserts a list of species facts by identifier into the database.
        /// </summary>
        /// <param name="context">Web service request context.</param>
        /// <param name="speciesFacts">Species facts to insert.</param>
        /// <param name="speciesFactUsage">How user selected SpeciesFacts should be used.</param>
        private static void AddUserSelectedSpeciesFacts(WebServiceContext context,
                                                        List <WebSpeciesFact> speciesFacts,
                                                        UserSelectedSpeciesFactUsage speciesFactUsage)
        {
            DataRow   row;
            DataTable speciesFactTable;

            if (speciesFacts.IsNotEmpty())
            {
                // Delete all species facts that belong to this request from the "temporary" tables.
                // This is done to avoid problem with restarts of the webservice.
                DeleteUserSelectedSpeciesFacts(context);

                // Insert the new list of species facts.
                speciesFactTable = GetUserSelectedSpeciesFactTable();
                foreach (WebSpeciesFact speciesFact in speciesFacts)
                {
                    row    = speciesFactTable.NewRow();
                    row[0] = context.RequestId;
                    row[2] = speciesFactUsage.ToString();
                    row[3] = speciesFact.FactorId;
                    row[4] = speciesFact.TaxonId;
                    row[5] = speciesFact.IndividualCategoryId;
                    if (speciesFact.IsHostSpecified)
                    {
                        row[6] = speciesFact.HostId;
                    }
                    if (speciesFact.IsPeriodSpecified)
                    {
                        row[7] = speciesFact.PeriodId;
                    }
                    speciesFactTable.Rows.Add(row);
                }
                DataServer.AddUserSelectedSpeciesFacts(context, speciesFactTable);
            }
        }