Public Class SearchBooks
Inherits System.Web.UI.Page
Protected WithEvents Label3 As System.Web.UI.WebControls.Label
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Protected WithEvents Label4 As System.Web.UI.WebControls.Label
Protected WithEvents btnSearch As System.Web.UI.WebControls.Button
Protected WithEvents cboAvailability As System.Web.UI.WebControls.DropDownList
Protected WithEvents txtBookName As System.Web.UI.WebControls.TextBox
Protected WithEvents txtAuthor As System.Web.UI.WebControls.TextBox
Protected WithEvents dgBooks As System.Web.UI.WebControls.DataGrid
Protected WithEvents Label5 As System.Web.UI.WebControls.Label
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
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
' Initialize the availability drop down
If Not Page.IsPostBack Then
Dim ProxyObj As New BookProxy.BookWS()
ProxyObj.BookSecurityContextValue = WSUtil.GetBookSecurityContext()
Dim AvailabilityDs As DataSet = ProxyObj.GetAvailabilityDs()
If Not AvailabilityDs Is Nothing Then
Me.cboAvailability.DataSource = AvailabilityDs.Tables(0)
Me.cboAvailability.DataTextField = JohnDb.AvailabilityDb.FIELD_AVAILABILITY_NAME
Me.cboAvailability.DataValueField = JohnDb.AvailabilityDb.FIELD_AVAILABILITY_ID
Me.DataBind()
Me.cboAvailability.Items.Insert(0, "")
End If
End If
End Sub
'#########################################################################################################################
' When the search button is clicked we invoke John's web service and search his books. The result is bound to our datagrid
'#########################################################################################################################
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim ProxyObj As New BookProxy.BookWS()
ProxyObj.BookSecurityContextValue = WSUtil.GetBookSecurityContext
Dim AvailabilityId As Int32
If Not Utils.IsNull(Me.cboAvailability.SelectedItem.Value) Then
AvailabilityId = Convert.ToInt32(Me.cboAvailability.SelectedItem.Value)
End If
Dim BookDs As DataSet = ProxyObj.SearchBooks(Nothing, Me.txtAuthor.Text, Me.txtBookName.Text, AvailabilityId)
If Not BookDs Is Nothing Then
Me.dgBooks.DataSource = BookDs.Tables(0)
Me.dgBooks.Visible = True
Me.DataBind()
End If
End Sub
'#########################################################################################################################
' When an item in the datagrid is clicked, we add the book to the customers shopping cart
'#########################################################################################################################
Public Sub Place_Order(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
' Add the book Id to the user's session
Dim SessionObj As ClientSession = Session.Item(ClientSession.CLIENT_SESSION_REF)
SessionObj.BookIds.Add(e.Item.Cells(0).Text)
' Increment the number of book in their order
SessionObj.NumItems += 1
End Sub
End Class