Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Xml
''' <summary>
''' Summary description for AmazonAccess
''' </summary>
''' <remarks></remarks>
Public Class AmazonAccess
Public Sub New()
''
'' TODO: Add constructor login here
''
End Sub
Private Shared Function GetResponseTable() As DataTable
Dim dt As DataTable = New DataTable()
dt.Columns.Add(New DataColumn("ASIN", Type.GetType("System.String")))
dt.Columns.Add(New DataColumn("ProductName", Type.GetType("System.String")))
dt.Columns.Add(New DataColumn("ProductPrice", Type.GetType("System.String")))
dt.Columns.Add(New DataColumn("ProductImageUrl", Type.GetType("System.String")))
Return dt
End Function
Private Shared Function GetAmazonDataWithSoap() As DataTable
Dim amazonService As AWSECommerseService = New AWSECommerseService();
Dim itemSearch As ItemSearch = New ItemSearch()
Dim itemSearchRequest As ItemSearchRequest = New ItemSearchRequest()
Dim itemSearchResponse As ItemSearchResponse
itemSearch.SubscriptionId = BalloonShopConfiguration.SubscriptionId
itemSearchRequest.Keywords = BalloonShopConfiguration.SearchKeywords
itemSearchRequest.SearchIndex = BalloonShopConfiguration.SearchIndex
itemSearchRequest.ResponseGroup = BalloonShopConfiguration.ResponseGroups.Split(',');
itemSearch.Request = New AmazonEcs.ItemSearchRequest(1) {itemSearchRequest}
Dim responseTable As DataTable = GetResponseTable()
Try
itemSearchResponse = amazonService.ItemSearch(itemSearch)
Dim results As Item() = itemSearchResponse.Items(0).Item;
Dim item As AmazonEcs.Item
For Each item In results
Try
Dim dataRow As DataRow = responseTable.NewRow()
dataRow("ASIN") = item.ASIN
dataRow("ProductName") = item.ItemAttributes.Title
dataRow("ProductImageUrl") = item.SmallImge.URL
dataRow("ProductPrice") = item.OfferSummary.LowestNewPrice.FormattedPrice
responseTable.Rows.Add(dataRow)
Catch ex As Exception
End Try
Next
Catch ex As Exception
End Try
Return responseTable
End Function
Public Shared Function GetAmazonDataWithRest() As DataTable
Dim responseTable As DataTable = GetResponseTable()
Dim amazonRequest As String = string.Format("{0}&SubscriptionId={1}&Operation=ItemSearch&Keywords={2}&SearchIndex={3}&ResponseGroup={4}",
BalloonShopConfiguration.AmazonRestUrl,
BalloonShopConfiguration.SubscriptionId,
BalloonShopConfiguration.SearchKeywords,
BalloonShopConfiguration.ResponseGroups)
Try
Dim responseXmlDoc As XmlDocument = New XmlDocument()
responseXmlDoc.Load(amazonRequest)
Dim xnm As XmlNamespaceManager = New XmlNamespaceManager(responseXmlDoc.NameTable)
xnm.AddNamespace("amz", "http://webservices.amazon.com/AWSECommerseService/2005-07026")
Dim itemNodes As XmlNodeList = responseXmlDoc.SelectNodes("amz:ItemSearchResponse/amz:Items/amz:Item", xnm)
Dim itemNode As XmlNode
For Each itemNode In itemNodes
Try
Dim dataRow As DataRow = responseTable.NewRow()
dataRow("ASIN") = itemNode("ASIN").InnerText
dataRow("ProductName") = itemNode("ItemAttributes")("Title").InnerText
dataRow("ProductImageUrl") = itemNode("SmallImage")("URL").InnerText
dataRow("ProductPrice") = itemNode("OfferSummary")("LowerNewPRice")("FormattedPrice").InnerText
responseTable.Rows.Add(dataRow)
Catch ex As Exception
End Try
Next
Catch ex As Exception
End Try
Return responseTable
End Function
End Class