Alcances 2012 Web Services

Example Code.
Demonstrating the rqGetAvailability(SearchCriteria, RoomManifest) Web Method Call.
Returns the following....

XML Output:

See here for the Returned XML Structure and Help.



CLASS STRUCTURE.
Public Class clsSearchCriteria

Public Class SearchCriteria

Public AreaID As String

Public CountryID As Integer

Public RegionID As Integer

Public HotelRatingID As Integer

Public BoardID As Integer

Public HotelID As Integer

Public CheckIn As Date

Public Nights As Integer

Public NumberOfRooms As Integer

Public IncludeLimitedAvailability As Integer

Public UserID As String

End Class


Public Class RoomManifest

Public Rooms() As RoomDetails

End Class


Public Class RoomDetails

Public RoomNumber As Integer

Public NumberOfAdults As Integer

Public NumberOfChildren As Integer

Public ChildAge1 As Integer

Public ChildAge2 As Integer

Public ChildAge3 As Integer

Public ChildAge4 As Integer

Public ChildAge5 As Integer

Public ChildAge6 As Integer

End Class

End Class

Code Sample:
Function fnGetAvailability

' get Availability/Rooms

Const METHOD_NAME As String = "fnGetAvailability"

Try

Dim oProxy As New rqGetAvailability.rqGetAvailability

Dim oAuthHeader As New rqGetAvailability.clsAuthenticationHeader

'// System Credential And UserID taken from prevous call to rqGetCredentials

oAuthHeader.SystemCredential = Session("SystemCredential")

oAuthHeader.UserID = Session("ValidatedUserID")

oProxy.clsAuthenticationHeaderValue = oAuthHeader

'// Create The Class Structures From Proxy

Dim oSearchCriteria As New rqGetAvailability.SearchCriteria

Dim oRoomManifest As New rqGetAvailability.RoomManifest

ReDim oRoomManifest.Rooms(iRooms - 1)


'//The Following Code Assumes That The variables Have Been Collected For Putting Into The
'// SearchCriteria And RoomManifest '// RegionID and CountryID are decommissioned. Use -1.

'Populate Proxy Classes

With oSearchCriteria

.AreaID = sAreaID

.BoardID = iBoardType

.CheckIn = oFrom.ToShortDateString

.CountryID = -1

.HotelID = iHotelID

.HotelRatingID = iRatingID

.Nights = iNights

.NumberOfRooms = iRooms

.RegionID = -1

.IncludeLimitedAvailability = iIncludeLimitedAvailability

.UserID = Session("ValidatedUserID")

End With

'// A table has been used here to store the array of room manifest.. (num of adults, children, ages etc...

'// use which ever tools fits your environment

'//

Dim oTable As DataTable

oTable = fnCollectRoomManifest(iRooms)

If Not oTable Is Nothing Then

For i As Integer = 0 To oTable.Rows.Count - 1

Dim oRoom As New rqGetAvailability.RoomDetails

oRoom.NumberOfAdults = oTable.Rows(i).Item("Adults")

oRoom.NumberOfChildren = oTable.Rows(i).Item("Children")

oRoom.RoomNumber = oTable.Rows(i).Item("Room")

oRoom.ChildAge1 = oTable.Rows(i).Item("CH1")

oRoom.ChildAge2 = oTable.Rows(i).Item("CH2")

oRoom.ChildAge3 = oTable.Rows(i).Item("CH3")

oRoom.ChildAge4 = oTable.Rows(i).Item("CH4")

oRoom.ChildAge5 = oTable.Rows(i).Item("CH5")

oRoom.ChildAge6 = oTable.Rows(i).Item("CH6")

oRoomManifest.Rooms(i) = oRoom

Next

End If

Dim sXML As String = oProxy.rqGetAvailability(oSearchCriteria, oRoomManifest)

'// XML Returned In sXML

Catch ex As Exception

'Exception occurred within this method, log it

Log.WriteLogEntry(ex, Me.CLASS_NAME, METHOD_NAME)

End Try

End Function