/// <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); } }