Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
PUT | /timeexceptions/{Id} | Updates a time exception for a given resource belonging to the current user | Updates 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
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
<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 UpdateResourceTimeException
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>
'''Tome exceptions id
'''</Summary>
<ApiMember(Description:="Tome exceptions id", ParameterType:="path")>
Public Overridable Property Id As Integer
'''<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")>
Public Overridable Property From As Nullable(Of 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")>
Public Overridable Property To As Nullable(Of 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 Nullable(Of 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 Nullable(Of TimeSpan)
'''<Summary>
'''A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
'''</Summary>
<ApiMember(Description:="A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")>
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 Nullable(Of 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 Nullable(Of 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
End Namespace
Namespace BokaMera.API.ServiceModel.Enums
Public Enum CollidingBookingOptions
AddWithoutCancelingCollidingBookings = 1
AddAndCancelCollidingBookings = 2
End Enum
End Namespace
End Namespace
VB.NET UpdateResourceTimeException DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
PUT /timeexceptions/{Id} HTTP/1.1
Host: api.bokamera.se
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
CompanyId: 00000000-0000-0000-0000-000000000000,
Id: 0,
From: "0001-01-01T00:00:00",
To: "0001-01-01T00:00:00",
ResourceIds:
[
0
],
FromTime: PT0S,
ToTime: PT0S,
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: text/jsv 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: PT0S, ToTime: PT0S, 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 } } }