Listing 1 (webserviceCalls.vb) Imports System Imports System.Data Imports System.Xml Imports System.IO.StringReader Imports System.Data.DataSet Public Class webServiceCalls Private oWS As New mySite.com.eventWS() Function getCategoryList() As String(,) Dim doc As XmlDataDocument = New XmlDataDocument() Dim reader As XmlTextReader = New XmlTextReader(New System.IO.StringReader(oWS.getCategoriesXML())) Dim oXFormat As New XMLData() Return oXFormat.createArrayFromXML(reader) End Function Public Function getEventsByDateAndCategory(ByVal dtEvent As Date, ByVal CategoryID As Integer) As String Return oWS.getEventsByDateAndCat(dtEvent, CategoryID) End Function Public Function getEventListByDate(ByVal dtEvent As Date) As String Return oWS.getEvents(dtEvent) End Function End Class Listing 2. xmlData.vb Imports System.Xml.XPath Public Class XMLData Public Function createArrayFromXML(ByVal reader As System.Xml.XmlTextReader) As String(,) Dim ds As New DataSet("xmlTable") ds.ReadXml(reader) Dim oDT As DataTable = ds.Tables(0) Dim oDR As DataRow Dim sARData(ds.Tables(0).Rows.Count, 2) As String Dim iCount As Integer For Each oDR In oDT.Rows sARData(iCount, 0) = oDR.Item(0) sARData(iCount, 1) = oDR.Item(1) iCount = iCount + 1 Next Return sARData End Function End Class Listing 3. (EventClientTest form1.vb) Public Class Form1 Inherits System.Windows.Forms.Form ... Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim oEClient As New EventClient.webServiceCalls() Dim arCategories As String(,) = oEClient.getCategoryList() MsgBox(oEClient.getEventListByDate(New Date().Parse("11/1/2001"))) MsgBox(oEClient.getEventsByDateAndCategory(New Date().Parse("11/1/2001"), 1)) MsgBox(arCategories(1, 1)) End Sub End Class Listing 4. (index.aspx and index.aspx.vb) index.aspx ... <%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="CompanyEventsClient.WebForm1"%> WebForm1
Date:

Category:

Results
index.aspx.vb... Imports System.Xml Imports System.Data Public Class WebForm1 Inherits System.Web.UI.Page Protected WithEvents lbCategories As System.Web.UI.WebControls.ListBox Protected WithEvents lblReturn As System.Web.UI.WebControls.Label Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents txtDate As System.Web.UI.WebControls.TextBox Protected WithEvents SqlSelectCommand1 As System.Data.SqlClient.SqlCommand #Region " Web Form Designer Generated Code " Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here Dim oEventClient As New EventClient.webServiceCalls() Dim owsSingleEvent As New localhost.SingleEvent() Dim sDate As String = txtDate.Text If Not IsPostBack Then 'populate or list box or other controls Dim arReturn(,) As String arReturn = oEventClient.getCategoryList() Dim iRow As Integer, iValue As Integer lbCategories.Items.Clear() Dim oListItem As New ListItem() lbCategories.Items.Add(New ListItem("All", "-99")) For iRow = 0 To UBound(arReturn) - 1 oListItem = New ListItem(arReturn(iRow, 1), arReturn(iRow, 0)) lbCategories.Items.Add(oListItem) Next iRow Else 'accept the data, call the web service to get the response If lbCategories.SelectedIndex > 0 Then lblReturn.Text = oEventClient.getEventsByDateAndCategory(New Date().Parse(sDate), lbCategories.SelectedItem.Value) Else lblReturn.Text = oEventClient.getEventListByDate(New Date().Parse(sDate)) End If End If End Sub End Class