/// <summary>
        /// Inserts a list of reference ids into the database.
        /// </summary>
        /// <param name="context">Web service request context.</param>
        /// <param name="referenceIds">Id for references to insert.</param>
        /// <param name="referenceUsage">How user selected references should be used.</param>
        public static void AddUserSelectedReferences(WebServiceContext context,
                                                     List <Int32> referenceIds,
                                                     UserSelectedReferenceUsage referenceUsage)
        {
            DataColumn column;
            DataRow    row;
            DataTable  referenceTable;

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

                // Insert the new list of references.
                referenceTable = new DataTable(UserSelectedReferenceData.TABLE_NAME);
                column         = new DataColumn(UserSelectedReferenceData.REQUEST_ID, typeof(Int32));
                referenceTable.Columns.Add(column);
                column = new DataColumn(UserSelectedReferenceData.REFERENCE_ID, typeof(Int32));
                referenceTable.Columns.Add(column);
                column = new DataColumn(UserSelectedReferenceData.REFERENCE_USAGE, typeof(String));
                referenceTable.Columns.Add(column);
                foreach (Int32 referenceId in referenceIds)
                {
                    row    = referenceTable.NewRow();
                    row[0] = context.RequestId;
                    row[1] = referenceId;
                    row[2] = referenceUsage.ToString();
                    referenceTable.Rows.Add(row);
                }

                DataServer.AddUserSelectedReferences(context, referenceTable);
            }
        }