BokaMera.API.Host

<back to all web services

NextFreeTimeQuery

The following routes are available for this service:
GET/services/{ServiceId}/nextfreetimeGet the next available time for the serviceGet the next available time for the service
namespace BokaMera.API.ServiceModel.Dtos

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type ExceptionText() = 
        member val Reason:String = null with get,set
        member val ReasonPublic:String = null with get,set

    [<AllowNullLiteral>]
    type AvailableTimesSum() = 
        member val From:DateTime = new DateTime() with get,set
        member val To:DateTime = new DateTime() with get,set
        member val Free:Int32 = new Int32() with get,set
        member val FreeSpots:Int32 = new Int32() with get,set
        member val ExceptionTexts:IEnumerable<ExceptionText> = null with get,set

    [<AllowNullLiteral>]
    type AvailableTimesResponse() = 
        member val CompanyId:Guid = new Guid() with get,set
        member val ServiceId:Int32 = new Int32() with get,set
        member val TimesFreeTextSingle:String = null with get,set
        member val TimesFreeTextMultiple:String = null with get,set
        member val Times:ResizeArray<AvailableTimesSum> = null with get,set

    [<AllowNullLiteral>]
    type AvailableTimesResourceTypeResource() = 
        ///<summary>
        ///The resourcetype id
        ///</summary>
        [<ApiMember(Description="The resourcetype id")>]
        member val ResourceTypeId:Int32 = new Int32() with get,set

        ///<summary>
        ///The resource id
        ///</summary>
        [<ApiMember(Description="The resource id")>]
        member val ResourceId:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type NextFreeTimeQuery() = 
        ///<summary>
        ///Company to show available time for
        ///</summary>
        [<ApiMember(Description="Company to show available time for", ParameterType="query")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Service id
        ///</summary>
        [<ApiMember(Description="Service id", IsRequired=true, ParameterType="path")>]
        member val ServiceId:Int32 = new Int32() with get,set

        ///<summary>
        ///From what datetime to search available times
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="From what datetime to search available times", IsRequired=true, ParameterType="query")>]
        member val From:DateTime = new DateTime() with get,set

        ///<summary>
        ///To what datetime to show available times. Optional, if no datetime is set it will search one year
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="To what datetime to show available times. Optional, if no datetime is set it will search one year", IsRequired=true, ParameterType="query")>]
        member val To:DateTime = new DateTime() with get,set

        ///<summary>
        ///Here you can select one of the resource in each resource type connected to the service, if none is selected it will show available times for all
        ///</summary>
        [<ApiMember(Description="Here you can select one of the resource in each resource type connected to the service, if none is selected it will show available times for all", ParameterType="query")>]
        member val Resources:ResizeArray<AvailableTimesResourceTypeResource> = null with get,set

        ///<summary>
        ///Here you select number of resources to book (in each resource type). Default is 1.
        ///</summary>
        [<ApiMember(Description="Here you select number of resources to book (in each resource type). Default is 1.", ParameterType="query")>]
        member val NumberOfResources:Int32 = new Int32() with get,set

        ///<summary>
        ///The duration you want to book. Needs to withing the service Min and Max. If not set it will use the service duration
        ///</summary>
        [<ApiMember(DataType="bool", Description="The duration you want to book. Needs to withing the service Min and Max. If not set it will use the service duration", ParameterType="query")>]
        member val Duration:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///If you want to include the connected resource types and resources
        ///</summary>
        [<ApiMember(Description="If you want to include the connected resource types and resources", ParameterType="query")>]
        member val ShowPerResource:Boolean = new Boolean() with get,set

F# NextFreeTimeQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /services/{ServiceId}/nextfreetime HTTP/1.1 
Host: api.bookmore.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<AvailableTimesResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <ServiceId>0</ServiceId>
  <Times>
    <AvailableTimesSum>
      <ExceptionTexts i:nil="true" />
      <Free>0</Free>
      <FreeSpots>0</FreeSpots>
      <From>0001-01-01T00:00:00</From>
      <To>0001-01-01T00:00:00</To>
    </AvailableTimesSum>
  </Times>
  <TimesFreeTextMultiple>String</TimesFreeTextMultiple>
  <TimesFreeTextSingle>String</TimesFreeTextSingle>
</AvailableTimesResponse>