Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports WebService.ServiceModel
Imports WebService.ServiceModel.Base
Imports CommonService.Api.Models.Base
Namespace Global
Namespace CommonService.Api.Models.Base
Public Partial Class ApiServiceResponse
Implements IServiceResponse
Public Overridable Property Description As String
Public Overridable Property Heading As String
Public Overridable Property WasSuccessful As Boolean
Public Overridable Property ModelState As Object
End Class
End Namespace
Namespace WebService.ServiceModel
Public Partial Class FindBookingRate
Inherits ApiServiceRequest
Public Sub New()
RequestedSlots = New List(Of SlotData)
End Sub
Public Overridable Property FacilityId As Integer
Public Overridable Property BookingUserId As Integer
Public Overridable Property RequestedSlots As List(Of SlotData)
Public Overridable Property IsNew As Boolean
Public Overridable Property IsGuest As Boolean
End Class
Public Partial Class FindBookingRateResponse
Inherits ApiServiceResponse
Public Sub New()
UpdatedSlot = New List(Of SlotData)
Rates = New List(Of Decimal)
End Sub
Public Overridable Property UpdatedSlot As List(Of SlotData)
Public Overridable Property Rates As List(Of Decimal)
Public Overridable Property WasMerge As Boolean
End Class
Public Partial Class GuestData
Public Sub New()
UserCustomFields = New List(Of UserCustomFieldData)
End Sub
Public Overridable Property Name As String
Public Overridable Property EmailAddress As String
Public Overridable Property MobileNumber As String
Public Overridable Property UserCustomFields As List(Of UserCustomFieldData)
Public Overridable Property IsAlreadyUser As Boolean
Public Overridable Property SystemUserId As Integer
End Class
Public Partial Class SlotData
Public Overridable Property Start As String
Public Overridable Property [End] As String
Public Overridable Property Status As SlotStatus
Public Overridable Property BookingId As Integer
Public Overridable Property RemindStart As Boolean
Public Overridable Property Remind30Mins As Boolean
Public Overridable Property Remind1Hour As Boolean
Public Overridable Property Remind6Hours As Boolean
Public Overridable Property Remind12Hours As Boolean
Public Overridable Property Remind1Day As Boolean
Public Overridable Property Remind1Week As Boolean
Public Overridable Property BillableAmount As Decimal
Public Overridable Property BookedByName As String
Public Overridable Property BillableHours As Double
Public Overridable Property SlotLength As Double
Public Overridable Property UserData As GuestData
Public Overridable Property ExtraRequirements As String
End Class
Public Enum SlotStatus
Available = 0
Closed = 1
Booked = 2
UserBooked = 3
GroupBooked = 4
ToBook = 5
End Enum
Public Partial Class UserCustomFieldData
Public Overridable Property Id As Guid
Public Overridable Property Value As String
Public Overridable Property Name As String
Public Overridable Property Optional As Boolean
End Class
End Namespace
Namespace WebService.ServiceModel.Base
Public Partial Class ApiServiceRequest
Implements IServiceRequest
Implements IHasApiKey
Implements IHasDeviceInfo
'''<Summary>
'''The API Key required for authentication
'''</Summary>
<ApiMember(DataType:="string", Description:="The API Key required for authentication", IsRequired:=true)>
Public Overridable Property ApiKey As String
'''<Summary>
'''Latitude of the user making this request
'''</Summary>
<ApiMember(DataType:="double", Description:="Latitude of the user making this request")>
Public Overridable Property Latitude As Double
'''<Summary>
'''Longitude of the user making this request
'''</Summary>
<ApiMember(DataType:="double", Description:="Longitude of the user making this request")>
Public Overridable Property Longitude As Double
End Class
End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /csv/reply/FindBookingRate HTTP/1.1
Host: reservation.api.dev.86degrees.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"facilityId":0,"bookingUserId":0,"requestedSlots":[{"start":"String","end":"String","status":0,"bookingId":0,"remindStart":false,"remind30Mins":false,"remind1Hour":false,"remind6Hours":false,"remind12Hours":false,"remind1Day":false,"remind1Week":false,"billableAmount":0,"bookedByName":"String","billableHours":0,"slotLength":0,"extraRequirements":"String"}],"isNew":false,"isGuest":false,"apiKey":"String","latitude":0,"longitude":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"updatedSlot":[{"start":"String","end":"String","status":0,"bookingId":0,"remindStart":false,"remind30Mins":false,"remind1Hour":false,"remind6Hours":false,"remind12Hours":false,"remind1Day":false,"remind1Week":false,"billableAmount":0,"bookedByName":"String","billableHours":0,"slotLength":0,"extraRequirements":"String"}],"rates":[0],"wasMerge":false,"description":"String","heading":"String","wasSuccessful":false,"modelState":{}}