/// <summary> /// Check that data is valid. /// </summary> /// <param name="webSpeciesObservationPageSpecification">Page specification.</param> public static void CheckData(this WebSpeciesObservationPageSpecification webSpeciesObservationPageSpecification) { if (!IsValidSize(webSpeciesObservationPageSpecification.Size)) { throw new ArgumentOutOfRangeException("Size", "Please enter a positive Size less than or equal to " + ArtDatabanken.Settings.Default.SpeciesObservationPageMaxSize.WebToString()); } if (webSpeciesObservationPageSpecification.Start <= 0) { throw new ArgumentOutOfRangeException("Start", "Please enter a positive Start position."); } if (webSpeciesObservationPageSpecification.SortOrder.IsNotNull()) { foreach (WebSpeciesObservationFieldSortOrder webSpeciesObservationFieldSortOrder in webSpeciesObservationPageSpecification.SortOrder) { if (webSpeciesObservationFieldSortOrder.Class.IsNull()) { throw new ArgumentOutOfRangeException("Class", "Class (and Id) must be specified for sorting"); } if (webSpeciesObservationFieldSortOrder.Class.Id.IsNull()) { throw new ArgumentOutOfRangeException("Id", "Class Id must be specified for sorting"); } if (webSpeciesObservationFieldSortOrder.Property.IsNull()) { throw new ArgumentOutOfRangeException("Property", "Property (and ID) must be specified for sorting"); } if (webSpeciesObservationFieldSortOrder.Property.Id.IsNull()) { throw new ArgumentOutOfRangeException("Id", "Property Id must be specified for sorting"); } } } }
/// <summary> /// Get information about species observations paged /// that matches the search criteria. /// </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 criterias /// and returned species observations. /// </param> /// <param name="pageSpecification"></param> /// <returns>Information about requested species observations.</returns> public List <WebDarwinCore> GetDarwinCoreBySearchCriteriaPage(WebClientInformation clientInformation, WebSpeciesObservationSearchCriteria searchCriteria, WebCoordinateSystem coordinateSystem, WebSpeciesObservationPageSpecification pageSpecification) { using (ClientProxy client = new ClientProxy(this, 20)) { return(client.Client.GetDarwinCoreBySearchCriteriaPage(clientInformation, searchCriteria, coordinateSystem, pageSpecification)); } }
/// <summary> /// Convert a ISpeciesObservationPageSpecification instance /// to a WebSpeciesObservationPageSpecification instance. /// </summary> /// <param name="speciesObservationPageSpecification">An ISpeciesObservationPageSpecification instance.</param> /// <returns>A WebSpeciesObservationPageSpecification instance.</returns> protected WebSpeciesObservationPageSpecification GetSpeciesObservationPageSpecification(ISpeciesObservationPageSpecification speciesObservationPageSpecification) { WebSpeciesObservationPageSpecification webSpeciesObservationPageSpecification; webSpeciesObservationPageSpecification = new WebSpeciesObservationPageSpecification(); webSpeciesObservationPageSpecification.Size = speciesObservationPageSpecification.Size; webSpeciesObservationPageSpecification.SortOrder = new List <WebSpeciesObservationFieldSortOrder>(); webSpeciesObservationPageSpecification.SortOrder = GetSortOrder(speciesObservationPageSpecification.SortOrder); webSpeciesObservationPageSpecification.Start = speciesObservationPageSpecification.Start; return(webSpeciesObservationPageSpecification); }
/// <summary> /// The get end row. /// </summary> /// <param name="webSpeciesObservationPageSpecification"> /// The web species observation page specification. /// </param> /// <returns> /// The <see cref="long"/>. /// </returns> public static Int64 GetEndRow(this WebSpeciesObservationPageSpecification webSpeciesObservationPageSpecification) { return(webSpeciesObservationPageSpecification.Start + webSpeciesObservationPageSpecification.Size - 1); }
/// <summary> /// Get sort order in SQL format. /// </summary> /// <param name="pageSpecification">Species observation page specification.</param> /// <param name="context">Web service request context.</param> /// <param name="searchCriteria">Species observation search criteria.</param> /// <returns>Sort order in SQL format.</returns> public static String GetSqlSortOrder(this WebSpeciesObservationPageSpecification pageSpecification, WebServiceContext context, WebSpeciesObservationSearchCriteria searchCriteria) { return(pageSpecification.SortOrder.GetSqlSortOrder(context, searchCriteria, true)); }