Im trying to list all sellers for each book... the following code in VB and c# lists the books..
VB
==============
Imports System
Imports System.Data
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports com.amazon.webservices
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Public Function AmazonToDataSet(ByVal PowerSearchString As String) As DataSet
Dim ds As DataSet
'have we this in the cache already?
If Cache(PowerSearchString) = Nothing Then
'create our query
Dim response As ItemSearchResponse = grabAmazonSearch(PowerSearchString)
'Construct the dataset to store the results
ds = New DataSet()
ds.Tables.Add()
ds.Tables(0).Columns.Add("ProductName")
ds.Tables(0).Columns.Add("AuthorName")
ds.Tables(0).Columns.Add("Currency")
ds.Tables(0).Columns.Add("Offer")
ds.Tables(0).Columns.Add("ASIN")
ds.Tables(0).Columns.Add("URL")
Dim info As Items = response.Items(0)
' create new array with no size spec
Dim items As Item() = info.Item
Dim dr As DataRow
'iterate the results adding new rows with
'the values from the search result item.
Dim i As Integer = 0
While i < items.Length
Dim item As Item = items(i)
dr = ds.Tables(0).NewRow()
dr("ProductName") = item.ItemAttributes.Title
dr("AuthorName") = item.ItemAttributes.Author(0)
dr("Offer") = item.Offers.Offer
dr("ASIN") = item.ASIN
dr("Currency") = item.ItemAttributes.ListPrice.CurrencyCode
dr("URL") = item.DetailPageURL
ds.Tables(0).Rows.Add(dr)
System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
End While
'add the dataset to the cache
Cache.Insert(PowerSearchString, ds, Nothing, DateTime.Now.AddHours(24), TimeSpan.Zero)
Else
ds = DirectCast(Cache(PowerSearchString), DataSet)
End If
'return the dataset
Return ds
End Function
Private Function grabAmazonSearch(ByVal PowerSearchString As String) As ItemSearchResponse
Dim response As ItemSearchResponse
Dim aws As New AWSECommerceService()
Dim request As New ItemSearchRequest()
request.SearchIndex = "Books"
request.Power = PowerSearchString
request.ResponseGroup = New String() {"Large"}
request.MerchantId = "all"
request.Sort = "salesrank"
Dim requests As ItemSearchRequest() = New ItemSearchRequest() {request}
Dim itemSearch As New ItemSearch()
itemSearch.AssociateTag = "myassociatetag-20"
itemSearch.SubscriptionId = "AKIAIAAGYTHFJS2RBSVQ"
itemSearch.Request = requests
response = aws.ItemSearch(itemSearch)
Return response
End Function
Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
GridView1.DataSource = AmazonToDataSet("title: " + TextBox1.Text)
GridView1.DataBind()
End Sub
End Class
=====================================c#
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.amazon.webservices;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataSource = AmazonToDataSet("title: " + TextBox1.Text);
GridView1.DataBind();
}
public DataSet AmazonToDataSet(string PowerSearchString)
{
DataSet ds;
//have we this in the cache already?
if (Cache[PowerSearchString] == null)
{
//create our query
ItemSearchResponse response =
grabAmazonSearch(PowerSearchString);
//Construct the dataset to store the results
ds = new DataSet();
ds.Tables.Add();
ds.Tables[0].Columns.Add("ProductName");
ds.Tables[0].Columns.Add("AuthorName");
ds.Tables[0].Columns.Add("Currency");
ds.Tables[0].Columns.Add("Offer");
ds.Tables[0].Columns.Add("ASIN");
ds.Tables[0].Columns.Add("URL");
Items info = response.Items[0];
// create new array with no size spec
Item[] items = info.Item;
DataRow dr;
//iterate the results adding new rows with
//the values from the search result item.
for (int i = 0; i < items.Length; i++) //+
{
Item item = items[i];
dr = ds.Tables[0].NewRow();
dr["ProductName"] = item.ItemAttributes.Title;
dr["AuthorName"] = item.ItemAttributes.Author[0];
dr["Offer"] = item.Offers.Offer;
dr["ASIN"] = item.ASIN;
dr["Currency"] = item.ItemAttributes.ListPrice.CurrencyCode;
dr["URL"] = item.DetailPageURL;
ds.Tables[0].Rows.Add(dr);
}
//add the dataset to the cache
Cache.Insert(PowerSearchString, ds, null,
DateTime.Now.AddHours(24), TimeSpan.Zero);
}
else
{
ds = (DataSet)Cache[PowerSearchString];
}
//return the dataset
return ds;
}
private ItemSearchResponse grabAmazonSearch(string PowerSearchString)
{
ItemSearchResponse response;
AWSECommerceService aws = new AWSECommerceService();
ItemSearchRequest request = new ItemSearchRequest();
request.SearchIndex = "Books";
request.Power = PowerSearchString;
request.ResponseGroup = new string[] { "Large" };
request.Sort = "salesrank";
//request.MerchantId = "all";
ItemSearchRequest[] requests = new ItemSearchRequest[] { request };
ItemSearch itemSearch = new ItemSearch();
itemSearch.AssociateTag = "myassociatetag-20";
itemSearch.SubscriptionId = "AKIAIAAGYTHFJS2RBSVQ";
itemSearch.Request = requests;
response = aws.ItemSearch(itemSearch);
return response;
}
}