BokaMera.API.Host

<back to all web services

CreateResourceTimeException

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/timeexceptionsInserts a time exception for a given resource belonging to the current userInserts a time exception for a given resource belonging to the current user if no colliding bookings are found. If a colliding booking is found. A time exception must be either recurring (DaysOfWeek is set and From and To is the valid range for the recurrency) or non recurring (From and To are set)
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos
Imports BokaMera.API.ServiceModel.Enums

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        <ApiResponse(Description:="You were unauthorized to call this service", StatusCode:=401)>
        <ApiResponse(Description:="You have too low privilegies to call this service", StatusCode:=403)>
        <ApiResponse(Description:="Bookings exists that needs to be unbooked before creating this time exceptions, use the /timeexceptions/collidingevents to find which bookings and use the booking service to unbook them", StatusCode:=409)>
        <ValidateRequest(Validator:="IsAuthenticated")>
        Public Partial Class CreateResourceTimeException
            Inherits CreateResourceTimeExceptionBase
            Implements ICompany
            Public Sub New()
                ResourceIds = New Integer(){}
                DaysOfWeek = New Integer(){}
            End Sub

            '''<Summary>
            '''The company id, if empty will use the company id for the user you are logged in with.
            '''</Summary>
            <ApiMember(Description:="The company id, if empty will use the company id for the user you are logged in with.")>
            Public Overridable Property CompanyId As Nullable(Of Guid)

            '''<Summary>
            '''Time exception starting datestamp, only the date of day part is used of this value
            '''</Summary>
            <ApiMember(Description:="Time exception starting datestamp, only the date of day part is used of this value", IsRequired:=true)>
            Public Overridable Property From As Date

            '''<Summary>
            '''Time exception ending datestamp, only the date of day part is used of this value
            '''</Summary>
            <ApiMember(Description:="Time exception ending datestamp, only the date of day part is used of this value", IsRequired:=true)>
            Public Overridable Property To As Date

            '''<Summary>
            '''Resource id of the resource that owns this exception
            '''</Summary>
            <ApiMember(Description:="Resource id of the resource that owns this exception", IsRequired:=true)>
            Public Overridable Property ResourceIds As Integer()

            '''<Summary>
            '''This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.
            '''</Summary>
            <ApiMember(Description:="This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.")>
            Public Overridable Property FromTime As TimeSpan

            '''<Summary>
            '''This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.
            '''</Summary>
            <ApiMember(Description:="This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.")>
            Public Overridable Property ToTime As TimeSpan

            '''<Summary>
            '''A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday
            '''</Summary>
            <ApiMember(Description:="A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday")>
            Public Overridable Property DaysOfWeek As Integer()

            '''<Summary>
            '''The reason of the time exception, example: Vacation, doctors appointment, ...
            '''</Summary>
            <ApiMember(Description:="The reason of the time exception, example: Vacation, doctors appointment, ...", IsRequired:=true)>
            Public Overridable Property ReasonText As String

            '''<Summary>
            '''The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ...
            '''</Summary>
            <ApiMember(Description:="The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ...")>
            Public Overridable Property ReasonTextPublic As String

            '''<Summary>
            '''What hexadecimal color code the exception should have in the scheduler
            '''</Summary>
            <ApiMember(Description:="What hexadecimal color code the exception should have in the scheduler")>
            Public Overridable Property Color As String

            '''<Summary>
            '''If the time exception should block the time in the scheduler so it's not avaialable to book
            '''</Summary>
            <ApiMember(Description:="If the time exception should block the time in the scheduler so it's not avaialable to book")>
            Public Overridable Property BlockTime As Boolean

            '''<Summary>
            '''If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it
            '''</Summary>
            <ApiMember(Description:="If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it")>
            Public Overridable Property Private As Boolean

            '''<Summary>
            '''By default sets to 1, which is to add time exception without canceling colliding bookings
            '''</Summary>
            <ApiMember(Description:="By default sets to 1, which is to add time exception without canceling colliding bookings")>
            Public Overridable Property CollidingBookingOptions As CollidingBookingOptions
        End Class

        Public Partial Class CreateResourceTimeExceptionBase
            '''<Summary>
            '''If this equals true it will it add the time exception with the option you have selected in CollidingBookingOption. Default is to cancel all colliding bookings.
            '''</Summary>
            <ApiMember(Description:="If this equals true it will it add the time exception with the option you have selected in CollidingBookingOption. Default is to cancel all colliding bookings.")>
            Public Overridable Property Force As Boolean

            '''<Summary>
            '''When Force=true and colliding bookings exsists, this message is the message that are sent to the users when canceling their bookings.
            '''</Summary>
            <ApiMember(Description:="When Force=true and colliding bookings exsists, this message is the message that are sent to the users when canceling their bookings.")>
            Public Overridable Property CancelMessage As String

            '''<Summary>
            '''When Force=true and colliding bookings exsists, send cancelmessage as SMS Confirmation
            '''</Summary>
            <ApiMember(Description:="When Force=true and colliding bookings exsists, send cancelmessage as SMS Confirmation")>
            Public Overridable Property SendSmsConfirmation As Nullable(Of Boolean)

            '''<Summary>
            '''When Force=true and colliding bookings exsists, send cancelmessage as Email Confirmation
            '''</Summary>
            <ApiMember(Description:="When Force=true and colliding bookings exsists, send cancelmessage as Email Confirmation")>
            Public Overridable Property SendEmailConfirmation As Nullable(Of Boolean)
        End Class

        Public Partial Class DayOfWeekDto
            Public Overridable Property DayOfWeekId As Integer
            Public Overridable Property DotNetDayOfWeekId As Integer
            Public Overridable Property DayOfWeek As String
        End Class

        Public Partial Class ExceptionCalendarExportStatus
            Public Overridable Property CalendarId As String
            Public Overridable Property ExceptionId As Integer
            Public Overridable Property Synced As Nullable(Of Boolean)
        End Class

        Public Partial Class ResourceTimeExceptionQueryResponse
            Public Sub New()
                ResourceIds = New Integer(){}
                Resources = New List(Of TimeExceptionReosurceDetails)
                DaysOfWeek = New List(Of DayOfWeekDto)
            End Sub

            '''<Summary>
            '''Time exception id
            '''</Summary>
            <ApiMember(Description:="Time exception id")>
            Public Overridable Property Id As Integer

            '''<Summary>
            '''Time company id
            '''</Summary>
            <ApiMember(Description:="Time company id")>
            Public Overridable Property CompanyId As Guid

            '''<Summary>
            '''If it's locked for editing for the logged in administrator
            '''</Summary>
            <ApiMember(Description:="If it's locked for editing for the logged in administrator")>
            Public Overridable Property Locked As Boolean

            '''<Summary>
            '''Resources that owns this exception
            '''</Summary>
            <ApiMember(Description:="Resources that owns this exception")>
            Public Overridable Property ResourceIds As Integer()

            '''<Summary>
            '''Resources that owns this exception
            '''</Summary>
            <ApiMember(Description:="Resources that owns this exception")>
            Public Overridable Property Resources As List(Of TimeExceptionReosurceDetails)

            '''<Summary>
            '''Indicates wheter or not the time exception is recurring
            '''</Summary>
            <ApiMember(Description:="Indicates wheter or not the time exception is recurring")>
            Public Overridable Property IsRecurring As Boolean

            '''<Summary>
            '''Time exception starting timestamp
            '''</Summary>
            <ApiMember(Description:="Time exception starting timestamp")>
            Public Overridable Property From As Date

            '''<Summary>
            '''Time exception ending timestamp
            '''</Summary>
            <ApiMember(Description:="Time exception ending timestamp")>
            Public Overridable Property To As Date

            '''<Summary>
            '''If recurring then this value indicates the time of day when the time exception begins
            '''</Summary>
            <ApiMember(Description:="If recurring then this value indicates the time of day when the time exception begins")>
            Public Overridable Property FromTime As TimeSpan

            '''<Summary>
            '''If recurring then this value indicates the time of day when the time exception ends
            '''</Summary>
            <ApiMember(Description:="If recurring then this value indicates the time of day when the time exception ends")>
            Public Overridable Property ToTime As TimeSpan

            '''<Summary>
            '''The reason of the time exception, example: Vacation, doctors appointment, ...
            '''</Summary>
            <ApiMember(Description:="The reason of the time exception, example: Vacation, doctors appointment, ...")>
            Public Overridable Property ReasonText As String

            '''<Summary>
            '''The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ...
            '''</Summary>
            <ApiMember(Description:="The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ...")>
            Public Overridable Property ReasonTextPublic As String

            '''<Summary>
            '''What hexadecimal color code the exception should have in the scheduler
            '''</Summary>
            <ApiMember(Description:="What hexadecimal color code the exception should have in the scheduler")>
            Public Overridable Property Color As String

            '''<Summary>
            '''If the time exception should block the time in the scheduler so it's not avaialable to book
            '''</Summary>
            <ApiMember(Description:="If the time exception should block the time in the scheduler so it's not avaialable to book")>
            Public Overridable Property BlockTime As Boolean

            '''<Summary>
            '''If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it
            '''</Summary>
            <ApiMember(Description:="If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it")>
            Public Overridable Property Private As Boolean

            '''<Summary>
            '''The status for export to calendars like Gcal
            '''</Summary>
            <ApiMember(Description:="The status for export to calendars like Gcal")>
            Public Overridable Property CalendarExportStatus As ExceptionCalendarExportStatus

            '''<Summary>
            '''If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs
            '''</Summary>
            <ApiMember(Description:="If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs")>
            Public Overridable Property DaysOfWeek As List(Of DayOfWeekDto)

            '''<Summary>
            '''The datetime the exception was created
            '''</Summary>
            <ApiMember(Description:="The datetime the exception was created")>
            Public Overridable Property Created As Date

            Public Overridable Property ResponseStatus As ResponseStatus
        End Class

        Public Partial Class TimeExceptionReosurceDetails
            '''<Summary>
            '''Ids of the resources that owns this exception
            '''</Summary>
            <ApiMember(Description:="Ids of the resources that owns this exception")>
            Public Overridable Property Id As Integer

            '''<Summary>
            '''Name of the resource
            '''</Summary>
            <ApiMember(Description:="Name of the resource")>
            Public Overridable Property Name As String

            '''<Summary>
            '''Description of the resource
            '''</Summary>
            <ApiMember(Description:="Description of the resource")>
            Public Overridable Property Description As String

            '''<Summary>
            '''Color of the resource
            '''</Summary>
            <ApiMember(Description:="Color of the resource")>
            Public Overridable Property Color As String

            '''<Summary>
            '''Image of the resource
            '''</Summary>
            <ApiMember(Description:="Image of the resource")>
            Public Overridable Property ImageUrl As Uri

            Public Overridable Property ResponseStatus As ResponseStatus
        End Class
    End Namespace

    Namespace BokaMera.API.ServiceModel.Enums

        Public Enum CollidingBookingOptions
            AddWithoutCancelingCollidingBookings = 1
            AddAndCancelCollidingBookings = 2
        End Enum
    End Namespace
End Namespace

VB.NET CreateResourceTimeException DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /timeexceptions HTTP/1.1 
Host: api.bokamera.se 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","ResourceIds":[0],"FromTime":"00:00:00","ToTime":"00:00:00","DaysOfWeek":[0],"ReasonText":"String","ReasonTextPublic":"String","Color":"String","BlockTime":false,"Private":false,"CollidingBookingOptions":"AddWithoutCancelingCollidingBookings","Force":false,"CancelMessage":"String","SendSmsConfirmation":false,"SendEmailConfirmation":false}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Id":0,"Locked":false,"ResourceIds":[0],"Resources":[{"Id":0,"Name":"String","Description":"String","Color":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"IsRecurring":false,"FromTime":"00:00:00","ToTime":"00:00:00","ReasonText":"String","ReasonTextPublic":"String","Color":"String","BlockTime":false,"Private":false,"CalendarExportStatus":{"CalendarId":"String","ExceptionId":0,"Synced":false},"DaysOfWeek":[{"DayOfWeekId":0,"DotNetDayOfWeekId":0,"DayOfWeek":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}