/// <summary>
 /// Get information about species observations that has
 /// changed.
 ///
 /// Scope is restricted to those observations that the
 /// user has access rights to. There is no access right
 /// check on deleted species observations. This means
 /// that a client can obtain information about deleted
 /// species observations that the client has not
 /// received any create or update information about.
 ///
 /// Max 25000 species observation changes can be
 /// retrieved in one web service call.
 /// Exactly one of the parameters changedFrom and
 /// changeId should be specified.
 /// </summary>
 /// <param name="clientInformation">Information about the client that makes this web service call.</param>
 /// <param name="changedFrom">Start date and time for changes that should be returned.</param>
 /// <param name="isChangedFromSpecified">Indicates if parameter changedFrom should be used.</param>
 /// <param name="changedTo">
 /// End date and time for changes that should be
 /// returned. Parameter changedTo is optional and works
 /// with either parameter changedFrom or changeId.
 /// </param>
 /// <param name="isChangedToSpecified">Indicates if parameter changedTo should be used.</param>
 /// <param name="changeId">
 /// Start id for changes that should be returned.
 /// The species observation that is changed in the
 /// specified change id may be included in returned
 /// information.
 /// </param>
 /// <param name="isChangedIdSpecified">Indicates if parameter changeId should be used. </param>
 /// <param name="maxReturnedChanges">
 /// Requested maximum number of changes that should
 /// be returned. This property is used by the client
 /// to avoid problems with resource limitations on
 /// the client side.
 /// Max 25000 changes are returned if property
 /// maxChanges has a higher value than 25000.
 /// </param>
 /// <param name="searchCriteria">
 /// Only species observations that matches the search
 /// criteria are included in the returned information.
 /// This parameter is optional and may be null.
 /// There is no check on search criteria for
 /// deleted species observations. </param>
 /// <param name="coordinateSystem">Coordinate system used in returned species observations. </param>
 /// <param name="speciesObservationSpecification">
 /// Specify which subset of the data that should be
 /// returned for each species observation.
 /// All information for each species observation is
 /// returned if this parameter is null.
 /// This parameter is currently not used.
 /// </param>
 /// <returns>
 /// Information about changed species observations.
 /// </returns>
 public WebSpeciesObservationChange GetSpeciesObservationChange(WebClientInformation clientInformation,
                                                                DateTime changedFrom,
                                                                Boolean isChangedFromSpecified,
                                                                DateTime changedTo,
                                                                Boolean isChangedToSpecified,
                                                                Int64 changeId,
                                                                Boolean isChangedIdSpecified,
                                                                Int64 maxReturnedChanges,
                                                                WebSpeciesObservationSearchCriteria searchCriteria,
                                                                WebCoordinateSystem coordinateSystem,
                                                                WebSpeciesObservationSpecification speciesObservationSpecification)
 {
     using (ClientProxy client = new ClientProxy(this, 5))
     {
         return(client.Client.GetSpeciesObservationChange(clientInformation,
                                                          changedFrom,
                                                          isChangedFromSpecified,
                                                          changedTo,
                                                          isChangedToSpecified,
                                                          changeId,
                                                          isChangedIdSpecified,
                                                          maxReturnedChanges,
                                                          searchCriteria,
                                                          coordinateSystem,
                                                          speciesObservationSpecification));
     }
 }
 /// <summary>
 /// Get requested species observations.
 /// Scope is restricted to those observations
 /// that the user has access rights to.
 /// Species observations are returned in a format
 /// that is compatible with Darwin Core 1.5.
 /// Max 25000 observations with information
 /// can be retrieved in one call.
 /// </summary>
 /// <param name="clientInformation">Information about the client that makes this web service call.</param>
 /// <param name="speciesObservationIds">Id for species observations to get.</param>
 /// <param name="coordinateSystem">
 /// Coordinate system used in returned species observations.
 /// </param>
 /// <param name="speciesObservationSpecification">
 /// Specify which subset of the data that should be
 /// returned for each species observation.
 /// All information for each species observation is
 /// returned if this parameter is null.
 /// This parameter is currently not used.
 /// </param>
 /// <returns>Species observations.</returns>
 public WebSpeciesObservationInformation GetSpeciesObservationsByIds(WebClientInformation clientInformation,
                                                                     List <Int64> speciesObservationIds,
                                                                     WebCoordinateSystem coordinateSystem,
                                                                     WebSpeciesObservationSpecification speciesObservationSpecification)
 {
     using (ClientProxy client = new ClientProxy(this, 5))
     {
         return(client.Client.GetSpeciesObservationsByIds(clientInformation, speciesObservationIds, coordinateSystem, speciesObservationSpecification));
     }
 }
Пример #3
0
 /// <summary>
 /// Check that data is valid.
 /// </summary>
 /// <param name="speciesObservationSpecification">Species observation specification.</param>
 public static void CheckData(this WebSpeciesObservationSpecification speciesObservationSpecification)
 {
     if (speciesObservationSpecification.IsNotNull() &&
         speciesObservationSpecification.Fields.IsNotEmpty())
     {
         foreach (WebSpeciesObservationFieldSpecification fieldSpecification in speciesObservationSpecification.Fields)
         {
             fieldSpecification.CheckNotNull("fieldSpecification");
             fieldSpecification.CheckData();
         }
     }
 }
 /// <summary>
 /// Get information about species observations
 /// that matches the search criteria.
 /// This method provides paging functionality of the result.
 /// Max page size is 10000 species observations.
 /// Scope is restricted to those observations
 /// that the user has access rights to.
 /// </summary>
 /// <param name="clientInformation">Information about the client that makes this web service call.</param>
 /// <param name="searchCriteria">The species observation search criteria.</param>
 /// <param name="coordinateSystem">
 /// Coordinate system used in geometry search criteria
 /// and returned species observations.
 /// </param>
 /// <param name="pageSpecification">
 /// SpecificationId of paging information when
 /// species observations are retrieved.
 /// </param>
 /// <param name="speciesObservationSpecification">
 /// Specify which subset of the data that should be
 /// returned for each species observation.
 /// All information for each species observation is
 /// returned if this parameter is null.
 /// This parameter is currently not used.
 /// </param>
 /// <returns>Information about requested species observations.</returns>
 public List <WebSpeciesObservation> GetSpeciesObservationsBySearchCriteriaPage(WebClientInformation clientInformation,
                                                                                WebSpeciesObservationSearchCriteria searchCriteria,
                                                                                WebCoordinateSystem coordinateSystem,
                                                                                WebSpeciesObservationPageSpecification pageSpecification,
                                                                                WebSpeciesObservationSpecification speciesObservationSpecification)
 {
     using (ClientProxy client = new ClientProxy(this, 5))
     {
         return(client.Client.GetSpeciesObservationsBySearchCriteriaPage(clientInformation,
                                                                         searchCriteria,
                                                                         coordinateSystem,
                                                                         pageSpecification,
                                                                         speciesObservationSpecification));
     }
 }
 /// <summary>
 /// Get information about species observations
 /// that matches the search criteria.
 /// Max 25000 observations with information
 /// can be retrieved in one call.
 /// Max 1000000 observation ids can be retrieved in one call.
 /// </summary>
 /// <param name="clientInformation">Information about the client that makes this web service call.</param>
 /// <param name="searchCriteria">Species observation search criteria.</param>
 /// <param name="coordinateSystem">Coordinate system used in geometry search criteria
 /// and returned species observations. </param>
 /// <param name="speciesObservationSpecification">
 /// Specify which subset of the data that should be
 /// returned for each species observation.
 /// All information for each species observation is
 /// returned if this parameter is null.
 /// </param>
 /// <param name="sortOrder">
 /// Defines how species observations should be sorted.
 /// This parameter is optional. Random order is used
 /// if no sort order has been specified.
 /// This parameter is currently not used.
 /// </param>
 /// <returns>Information about requested species observations.</returns>
 public WebSpeciesObservationInformation GetSpeciesObservationsBySearchCriteria(WebClientInformation clientInformation,
                                                                                WebSpeciesObservationSearchCriteria searchCriteria,
                                                                                WebCoordinateSystem coordinateSystem,
                                                                                WebSpeciesObservationSpecification speciesObservationSpecification,
                                                                                List <WebSpeciesObservationFieldSortOrder> sortOrder)
 {
     using (ClientProxy client = new ClientProxy(this, 5))
     {
         return(client.Client.GetSpeciesObservationsBySearchCriteria(clientInformation,
                                                                     searchCriteria,
                                                                     coordinateSystem,
                                                                     speciesObservationSpecification,
                                                                     sortOrder));
     }
 }
Пример #6
0
        /// <summary>
        /// Get sum of the fields that are defined in property Fields
        /// or property Specification.
        /// </summary>
        /// <param name="speciesObservationSpecification">Species observation specification.</param>
        public static List <WebSpeciesObservationFieldSpecification> GetFields(this WebSpeciesObservationSpecification speciesObservationSpecification)
        {
            List <WebSpeciesObservationFieldSpecification> fieldSpecifications;

            fieldSpecifications = new List <WebSpeciesObservationFieldSpecification>();
            if (speciesObservationSpecification.IsNotNull())
            {
                fieldSpecifications.Merge(speciesObservationSpecification.Fields);

                switch (speciesObservationSpecification.Specification)
                {
                case SpeciesObservationSpecificationId.All:
                    // No field specifications is the same as all fields.
                    fieldSpecifications = new List <WebSpeciesObservationFieldSpecification>();
                    break;

                case SpeciesObservationSpecificationId.DarwinCore:
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.ActionPlan);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.ConservationRelevant);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.Natura2000);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.ProtectedByLaw);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.ProtectionLevel);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.RedlistCategory);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.SwedishImmigrationHistory);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Conservation,
                                              SpeciesObservationPropertyId.SwedishOccurrence);

                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.AccessRights);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.BasisOfRecord);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.BibliographicCitation);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.CollectionCode);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.CollectionID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.DataGeneralizations);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.DatasetID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.DatasetName);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.DynamicProperties);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Id);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.InformationWithheld);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.InstitutionCode);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.InstitutionID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Language);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Modified);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Owner);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.OwnerInstitutionCode);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.References);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.ReportedBy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.ReportedDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Rights);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.RightsHolder);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.SpeciesObservationURL);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Type);
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.ValidationStatus);

                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.Day);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.End);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.EndDayOfYear);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.EventDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.EventID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.EventRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.EventTime);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.FieldNotes);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.FieldNumber);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.Habitat);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.Month);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.SamplingEffort);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.SamplingProtocol);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.Start);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.StartDayOfYear);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.VerbatimEventDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Event,
                                              SpeciesObservationPropertyId.Year);

                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.Bed);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.EarliestAgeOrLowestStage);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.EarliestEonOrLowestEonothem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.EarliestEpochOrLowestSeries);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.EarliestEraOrLowestErathem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.EarliestPeriodOrLowestSystem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.Formation);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.GeologicalContextID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.Group);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.HighestBiostratigraphicZone);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LatestAgeOrHighestStage);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LatestEonOrHighestEonothem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LatestEpochOrHighestSeries);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LatestEraOrHighestErathem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LatestPeriodOrHighestSystem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LithostratigraphicTerms);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.LowestBiostratigraphicZone);
                    fieldSpecifications.Merge(SpeciesObservationClassId.GeologicalContext,
                                              SpeciesObservationPropertyId.Member);

                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.DateIdentified);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.IdentificationID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.IdentificationQualifier);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.IdentificationReferences);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.IdentificationRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.IdentificationVerificationStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.IdentifiedBy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.TypeStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Identification,
                                              SpeciesObservationPropertyId.UncertainDetermination);

                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.Continent);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateM);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinatePrecision);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateSystemWkt);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateUncertaintyInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateX);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateY);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateZ);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.Country);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CountryCode);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.County);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.DecimalLatitude);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.DecimalLongitude);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.FootprintSpatialFit);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.FootprintSRS);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.FootprintWKT);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeodeticDatum);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeoreferencedBy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeoreferencedDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeoreferenceProtocol);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeoreferenceRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeoreferenceSources);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.GeoreferenceVerificationStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.HigherGeography);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.HigherGeographyID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.Island);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.IslandGroup);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.Locality);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.LocationAccordingTo);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.LocationId);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.LocationRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.LocationURL);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.MaximumDepthInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.MaximumDistanceAboveSurfaceInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.MaximumElevationInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.MinimumDepthInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.MinimumDistanceAboveSurfaceInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.MinimumElevationInMeters);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.Municipality);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.Parish);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.PointRadiusSpatialFit);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.StateProvince);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimCoordinates);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimCoordinateSystem);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimDepth);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimElevation);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimLatitude);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimLocality);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimLongitude);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.VerbatimSRS);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.WaterBody);

                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementAccuracy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementDeterminedBy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementDeterminedDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementMethod);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementType);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementUnit);
                    fieldSpecifications.Merge(SpeciesObservationClassId.MeasurementOrFact,
                                              SpeciesObservationPropertyId.MeasurementValue);

                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.AssociatedMedia);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.AssociatedOccurrences);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.AssociatedReferences);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.AssociatedSequences);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.AssociatedTaxa);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.Behavior);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.CatalogNumber);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.Disposition);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.EstablishmentMeans);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.IndividualCount);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.IndividualID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.IsNaturalOccurrence);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.IsNeverFoundObservation);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.IsNotRediscoveredObservation);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.IsPositiveObservation);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.LifeStage);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.OccurrenceID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.OccurrenceRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.OccurrenceStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.OccurrenceURL);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.OtherCatalogNumbers);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.Preparations);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.PreviousIdentifications);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.Quantity);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.QuantityUnit);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.RecordedBy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.RecordNumber);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.ReportedBy);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.ReproductiveCondition);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.Sex);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Occurrence,
                                              SpeciesObservationPropertyId.Substrate);

                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.IsPublic);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectCategory);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectDescription);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectEndDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectName);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectOwner);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectStartDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.ProjectURL);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Project,
                                              SpeciesObservationPropertyId.SurveyMethod);

                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.RelatedResourceID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.RelationshipAccordingTo);
                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.RelationshipEstablishedDate);
                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.RelationshipOfResource);
                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.RelationshipRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.ResourceID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.ResourceRelationship,
                                              SpeciesObservationPropertyId.ResourceRelationshipID);

                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.AcceptedNameUsage);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.AcceptedNameUsageID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Class);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.DyntaxaTaxonID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Family);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Genus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.HigherClassification);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.InfraspecificEpithet);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Kingdom);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NameAccordingTo);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NameAccordingToID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NamePublishedIn);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NamePublishedInID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NamePublishedInYear);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NomenclaturalCode);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.NomenclaturalStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Order);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.OrganismGroup);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.OriginalNameUsage);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.OriginalNameUsageID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.ParentNameUsage);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.ParentNameUsageID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Phylum);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.ScientificName);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.ScientificNameAuthorship);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.ScientificNameID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.SpecificEpithet);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.Subgenus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonConceptID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonConceptStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonID);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonomicStatus);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonRank);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonRemarks);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonSortOrder);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.TaxonURL);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.VerbatimScientificName);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.VerbatimTaxonRank);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Taxon,
                                              SpeciesObservationPropertyId.VernacularName);
                    break;

                case SpeciesObservationSpecificationId.MapMinimum:
                    fieldSpecifications.Merge(SpeciesObservationClassId.DarwinCore,
                                              SpeciesObservationPropertyId.Id);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateX);
                    fieldSpecifications.Merge(SpeciesObservationClassId.Location,
                                              SpeciesObservationPropertyId.CoordinateY);
                    break;

                case SpeciesObservationSpecificationId.None:
                    // No field specifications to add.
                    break;
                }
            }

            return(fieldSpecifications);
        }