Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
POST | /schedules/recurring | Add new recurring schedule | Add new recurring schedule to the company for the currently logged in user, only administrators are allowed to add schedules. |
---|
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos
Namespace Global
Namespace BokaMera.API.ServiceModel.Dtos
Public Partial Class AddRecurringScheduleDate
'''<Summary>
'''The date for the schedule opening (only date part is used here
'''</Summary>
<ApiMember(Description:="The date for the schedule opening (only date part is used here", IsRequired:=true)>
Public Overridable Property [Date] As Date
'''<Summary>
'''The time for the schedule opening hours (starttime)
'''</Summary>
<ApiMember(Description:="The time for the schedule opening hours (starttime)", IsRequired:=true)>
Public Overridable Property StartTime As TimeSpan
'''<Summary>
'''The time for the schedule opening hours (endtime)
'''</Summary>
<ApiMember(Description:="The time for the schedule opening hours (endtime)", IsRequired:=true)>
Public Overridable Property EndTime As TimeSpan
End Class
Public Partial Class AddScheduleResource
'''<Summary>
'''The resource id
'''</Summary>
<ApiMember(Description:="The resource id", IsRequired:=true)>
Public Overridable Property Id As Integer
End Class
Public Partial Class AddScheduleService
'''<Summary>
'''The service id
'''</Summary>
<ApiMember(Description:="The service id", IsRequired:=true)>
Public Overridable Property Id As Integer
End Class
<ApiResponse(Description:="You were unauthorized to call this service", StatusCode:=401)>
<ValidateRequest(Validator:="IsAuthenticated")>
Public Partial Class CreateRecurringSchedule
Implements ICompany
Public Sub New()
DaysOfWeek = New Integer(){}
ScheduleDates = New List(Of AddRecurringScheduleDate)
Exceptions = New List(Of ScheduleException)
Resources = New List(Of AddScheduleResource)
Services = New List(Of AddScheduleService)
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>
'''The schedule name
'''</Summary>
<ApiMember(Description:="The schedule name")>
Public Overridable Property Name As String
'''<Summary>
'''The schedule description
'''</Summary>
<ApiMember(Description:="The schedule description")>
Public Overridable Property Description As String
'''<Summary>
'''If schedule is active or not
'''</Summary>
<ApiMember(Description:="If schedule is active or not")>
Public Overridable Property Active As Boolean
'''<Summary>
'''Time interval for available times. Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM
'''</Summary>
<ApiMember(Description:="Time interval for available times. Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired:=true)>
Public Overridable Property TimeInterval As Integer
'''<Summary>
'''Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).
'''</Summary>
<ApiMember(Description:="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired:=true)>
Public Overridable Property EnableBookingUntilClosingTime As Boolean
'''<Summary>
'''The timestamp to which the schedule is valid from
'''</Summary>
<ApiMember(Description:="The timestamp to which the schedule is valid from", IsRequired:=true)>
Public Overridable Property ValidFrom As Date
'''<Summary>
'''The timestamp to which the schedule is valid to
'''</Summary>
<ApiMember(Description:="The timestamp to which the schedule is valid to", IsRequired:=true)>
Public Overridable Property ValidTo As Date
'''<Summary>
'''The time for the schedule opening hours (starttime)
'''</Summary>
<ApiMember(Description:="The time for the schedule opening hours (starttime)", IsRequired:=true)>
Public Overridable Property StartTime As TimeSpan
'''<Summary>
'''The time for the schedule opening hours (endtime)
'''</Summary>
<ApiMember(Description:="The time for the schedule opening hours (endtime)", IsRequired:=true)>
Public Overridable Property EndTime As TimeSpan
'''<Summary>
'''The number of days the schedule is valid from todays date
'''</Summary>
<ApiMember(Description:="The number of days the schedule is valid from todays date", IsRequired:=true)>
Public Overridable Property NumberOfScheduleDays As Integer
'''<Summary>
'''If recurring, an array indicating which days of the week the schedule 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 schedule 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 Integer()
'''<Summary>
'''If not recuring, an array indicating which dates that are open for the schedule.
'''</Summary>
<ApiMember(Description:="If not recuring, an array indicating which dates that are open for the schedule.")>
Public Overridable Property ScheduleDates As List(Of AddRecurringScheduleDate)
'''<Summary>
'''Schedule exceptions. For example closed on lunch time between 12AM and 1PM. These times will be removed from the recurring schedule.
'''</Summary>
<ApiMember(Description:="Schedule exceptions. For example closed on lunch time between 12AM and 1PM. These times will be removed from the recurring schedule.")>
Public Overridable Property Exceptions As List(Of ScheduleException)
'''<Summary>
'''If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources.
'''</Summary>
<ApiMember(Description:="If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources.")>
Public Overridable Property Resources As List(Of AddScheduleResource)
'''<Summary>
'''Set what services the schedule should be connected to.
'''</Summary>
<ApiMember(Description:="Set what services the schedule should be connected to.")>
Public Overridable Property Services As List(Of AddScheduleService)
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 RecurringScheduleDateResponse
Public Overridable Property Id As Integer
Public Overridable Property [Date] As Date
Public Overridable Property StartTime As TimeSpan
Public Overridable Property EndTime As TimeSpan
Public Overridable Property ResponseStatus As ResponseStatus
End Class
Public Partial Class RecurringScheduleExceptionResponse
'''<Summary>
'''Start time of the schedule exception.
'''</Summary>
<ApiMember(Description:="Start time of the schedule exception.")>
Public Overridable Property StartTime As TimeSpan
'''<Summary>
'''End time of the schedule exception.
'''</Summary>
<ApiMember(Description:="End time of the schedule exception.")>
Public Overridable Property EndTime As TimeSpan
End Class
Public Partial Class RecurringScheduleQueryResponse
Public Sub New()
DaysOfWeek = New List(Of DayOfWeekDto)
Resources = New List(Of ScheduleResources)
Services = New List(Of ScheduleServices)
Exceptions = New List(Of RecurringScheduleExceptionResponse)
ScheduleDates = New List(Of RecurringScheduleDateResponse)
End Sub
'''<Summary>
'''The schedule id
'''</Summary>
<ApiMember(Description:="The schedule id")>
Public Overridable Property Id As Integer
'''<Summary>
'''Name of the schedule
'''</Summary>
<ApiMember(Description:="Name of the schedule")>
Public Overridable Property Name As String
'''<Summary>
'''Description of the schedule
'''</Summary>
<ApiMember(Description:="Description of the schedule")>
Public Overridable Property Description As String
'''<Summary>
'''If the schedule is active or not
'''</Summary>
<ApiMember(Description:="If the schedule is active or not")>
Public Overridable Property Active As Boolean
'''<Summary>
'''Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM
'''</Summary>
<ApiMember(Description:="Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired:=true)>
Public Overridable Property TimeInterval As Integer
'''<Summary>
'''The timestamp to which the schedule is valid from
'''</Summary>
<ApiMember(Description:="The timestamp to which the schedule is valid from", IsRequired:=true)>
Public Overridable Property ValidFrom As Date
'''<Summary>
'''The timestamp to which the schedule is valid to
'''</Summary>
<ApiMember(Description:="The timestamp to which the schedule is valid to", IsRequired:=true)>
Public Overridable Property ValidTo As Date
'''<Summary>
'''The time for the schedule opening hours (starttime)
'''</Summary>
<ApiMember(Description:="The time for the schedule opening hours (starttime)", IsRequired:=true)>
Public Overridable Property StartTime As TimeSpan
'''<Summary>
'''The time for the schedule opening hours (endtime)
'''</Summary>
<ApiMember(Description:="The time for the schedule opening hours (endtime)", IsRequired:=true)>
Public Overridable Property EndTime As TimeSpan
'''<Summary>
'''The number of days the schedule is valid from todays date
'''</Summary>
<ApiMember(Description:="The number of days the schedule is valid from todays date", IsRequired:=true)>
Public Overridable Property NumberOfScheduleDays As Integer
'''<Summary>
'''If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.
'''</Summary>
<ApiMember(Description:="If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.", IsRequired:=true)>
Public Overridable Property IsResourceSpecific As Nullable(Of Boolean)
'''<Summary>
'''The timestamp when the schedule was updated
'''</Summary>
<ApiMember(Description:="The timestamp when the schedule was updated", IsRequired:=true)>
Public Overridable Property UpdatedDate As Date
'''<Summary>
'''The timestamp when the schedule was created
'''</Summary>
<ApiMember(Description:="The timestamp when the schedule was created", IsRequired:=true)>
Public Overridable Property CreatedDate As Date
'''<Summary>
'''Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).
'''</Summary>
<ApiMember(Description:="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired:=true)>
Public Overridable Property EnableBookingUntilClosingTime As Boolean
'''<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 resources that is connected to the schedule
'''</Summary>
<ApiMember(Description:="The resources that is connected to the schedule")>
Public Overridable Property Resources As List(Of ScheduleResources)
'''<Summary>
'''The services that is connected to the schedule
'''</Summary>
<ApiMember(Description:="The services that is connected to the schedule")>
Public Overridable Property Services As List(Of ScheduleServices)
'''<Summary>
'''The exceptions that is added to the schedule
'''</Summary>
<ApiMember(Description:="The exceptions that is added to the schedule")>
Public Overridable Property Exceptions As List(Of RecurringScheduleExceptionResponse)
'''<Summary>
'''Schedule dates, used when the schedule is not a rolling schedule using days of week
'''</Summary>
<ApiMember(Description:="Schedule dates, used when the schedule is not a rolling schedule using days of week")>
Public Overridable Property ScheduleDates As List(Of RecurringScheduleDateResponse)
Public Overridable Property ResponseStatus As ResponseStatus
End Class
Public Partial Class ScheduleException
Public Overridable Property StartTime As TimeSpan
Public Overridable Property EndTime As TimeSpan
End Class
Public Partial Class ScheduleResources
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>
'''The image url of the resource
'''</Summary>
<ApiMember(Description:="The image url of the resource")>
Public Overridable Property ImageUrl As Uri
End Class
Public Partial Class ScheduleServices
Public Overridable Property Id As Integer
'''<Summary>
'''Name of the service
'''</Summary>
<ApiMember(Description:="Name of the service")>
Public Overridable Property Name As String
'''<Summary>
'''The image url of the service
'''</Summary>
<ApiMember(Description:="The image url of the service")>
Public Overridable Property ImageUrl As Uri
End Class
End Namespace
End Namespace
VB.NET CreateRecurringSchedule 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
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /schedules/recurring HTTP/1.1
Host: testapi.bokamera.se
Accept: application/json
Content-Type: application/json
Content-Length: length
{"CompanyId":"00000000-0000-0000-0000-000000000000","Name":"String","Description":"String","Active":false,"TimeInterval":0,"EnableBookingUntilClosingTime":false,"StartTime":"00:00:00","EndTime":"00:00:00","NumberOfScheduleDays":0,"DaysOfWeek":[0],"ScheduleDates":[{"StartTime":"00:00:00","EndTime":"00:00:00"}],"Exceptions":[{"StartTime":"00:00:00","EndTime":"00:00:00"}],"Resources":[{"Id":0}],"Services":[{"Id":0}]}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"Id":0,"Name":"String","Description":"String","Active":false,"TimeInterval":0,"StartTime":"00:00:00","EndTime":"00:00:00","NumberOfScheduleDays":0,"IsResourceSpecific":false,"EnableBookingUntilClosingTime":false,"DaysOfWeek":[{"DayOfWeekId":0,"DotNetDayOfWeekId":0,"DayOfWeek":"String"}],"Resources":[{"Id":0,"Name":"String"}],"Services":[{"Id":0,"Name":"String"}],"Exceptions":[{"StartTime":"00:00:00","EndTime":"00:00:00"}],"ScheduleDates":[{"Id":0,"StartTime":"00:00:00","EndTime":"00:00:00","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}