private static void ItemSearch() { // Create the request object ItemSearchRequest request = new ItemSearchRequest(); // Fill request object with request parameters request.ResponseGroup = new string[] { "Large", "ItemAttributes", "AlternateVersions" }; // Set SearchIndex to All and use the scanned EAN // as the keyword, this should generate a single response request.SearchIndex = "Books"; request.Keywords = "Century rain"; // asin = 0441013074 request.Author = "Alastair Reynolds"; // Make the item search ItemSearch search = new ItemSearch(); // It is ABSOLUTELY CRITICAL that you change // the AWSAccessKeyID to YOUR uniqe value // Signup for an account (and AccessKeyID) at http://aws.amazon.com/ search.AWSAccessKeyId = access_key_id; search.AssociateTag = associate_tag; // Set the request on the search wrapper - multiple requests // can be submitted on one search search.Request = new ItemSearchRequest[] { request }; // Make the port AWSECommerceServicePortTypeClient port = new AWSECommerceServicePortTypeClient("AWSECommerceServicePort"); port.ChannelFactory.Endpoint.EndpointBehaviors.Add(new AmazonSigningEndpointBehavior(access_key_id, secret_access_key)); //Send the request, store the response and display some of the results ItemSearchResponse response = port.ItemSearch(search); foreach (var items in response.Items) { foreach (var item in items.Item) { Console.WriteLine("{0}\t{1}\t{2}", item.ItemAttributes.Title, item.ASIN, item.ItemAttributes.Author[0]); if (item.AlternateVersions != null) { Console.WriteLine(" - Alternate versions"); foreach (var version in item.AlternateVersions) { Console.WriteLine(" -- \t{0}\t{1}\t{2}", version.Title, version.Binding, version.ASIN); } } } } }
public IEnumerable<Item> GetProducts(string sona, int leht) { AWSECommerceServicePortTypeClient ecs = new AWSECommerceServicePortTypeClient(); ItemSearchRequest paring = new ItemSearchRequest(); paring.ResponseGroup = new string[] { "ItemAttributes,OfferSummary" }; paring.SearchIndex = "All"; paring.Keywords = sona; paring.ItemPage = String.Format("{0}", leht); paring.MinimumPrice = "0"; ItemSearch otsi = new ItemSearch(); otsi.Request = new ItemSearchRequest[] { paring }; otsi.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; otsi.AssociateTag = ConfigurationManager.AppSettings["associateTag"]; ItemSearchResponse vastus = ecs.ItemSearch(otsi); if (vastus == null) { throw new Exception("Server Error - didn't get any reponse from server!"); } else if (vastus.OperationRequest.Errors != null) { throw new Exception(vastus.OperationRequest.Errors[0].Message); } else if (vastus.Items[0].Item == null) { throw new Exception("Didn't get any items!Try agen with different keyword."); } else { return vastus.Items[0].Item; } }
static void Main(string[] args) { var ci = CultureInfo.InvariantCulture.Clone() as CultureInfo; ci.NumberFormat.NumberDecimalSeparator = "."; List<string> products = new List<string>(); List<string> price = new List<string>(); // Instantiate Amazon ProductAdvertisingAPI client AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); for (int i = 1; i <= 6; i++) { // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "All"; //request.Title = "WCF"; request.Keywords = "playstation -kindle"; request.ResponseGroup = new string[] {"ItemAttributes", "Images"}; request.ItemPage = i.ToString(); ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AssociateTag = "testfo-20"; // send the ItemSearch request ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); } }
public ItemSearchResponse ItemSearch(string SearchIndex, string[] Group, string Keywords) { BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; binding.MaxBufferSize = int.MaxValue; AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client amazonClient.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(ConfigurationManager.AppSettings["accessKeyId"], ConfigurationManager.AppSettings["secretKey"])); ItemSearchRequest search = new ItemSearchRequest(); search.SearchIndex = SearchIndex; search.ResponseGroup = Group; search.Keywords = Keywords; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { search }; itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AssociateTag = ConfigurationManager.AppSettings["associateTag"]; ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); return response; }
static void Main(string[] args) { // Instantiate Amazon ProductAdvertisingAPI client AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest { SearchIndex = "Books", Title = "WCF", ResponseGroup = new[] {"Small"} }; ItemSearch itemSearch = new ItemSearch { Request = new[] {request}, AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"], AssociateTag = "ReplaceWithYourValue" }; // send the ItemSearch request ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); // write out the results from the ItemSearch request foreach (var item in response.Items[0].Item) { Console.WriteLine(item.ItemAttributes.Title); } Console.WriteLine("done...enter any key to continue>"); Console.ReadLine(); }
public static void AmazonWCF() { // create a WCF Amazon ECS client BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "Electronics"; request.Title = "Monitor"; request.ResponseGroup = new string[] { "Small" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = accessKeyId; //itemSearch.AssociateTag = tab // issue the ItemSearch request ItemSearchResponse response = client.ItemSearch(itemSearch); // write out the results foreach (var item in response.Items[0].Item) { Console.WriteLine(item.ItemAttributes.Title); } }
public void addItemRecord() { NetSuiteService service = new NetSuiteService(); service.CookieContainer = new CookieContainer(); NetsuiteUser user = new NetsuiteUser("3451682", "*****@*****.**", "1026", "tridenT168"); Passport passport = user.prepare(user); Status status = service.login(passport).status; string itemName = this.ItemName; SearchStringField objItemName = new SearchStringField(); objItemName.searchValue = itemName; objItemName.@operator = SearchStringFieldOperator.@is; objItemName.operatorSpecified = true; ItemSearch objItemSearch = new ItemSearch(); objItemSearch.basic = new ItemSearchBasic(); objItemSearch.basic.itemId = objItemName; SearchPreferences searchPreferences = new SearchPreferences(); searchPreferences.bodyFieldsOnly = false; service.searchPreferences = searchPreferences; SearchResult objItemResult = service.search(objItemSearch); if (objItemResult.status.isSuccess != true) throw new Exception("Cannot find Item " + itemName + " " + objItemResult.status.statusDetail[0].message); if (objItemResult.recordList.Count() != 1) throw new Exception("More than one item found for item " + itemName); InventoryItem iRecord = new InventoryItem(); iRecord = ((InventoryItem)objItemResult.recordList[0]); this.itemRecord = new InventoryItem(); this.itemRecord=iRecord; }
public virtual List<ProductDTO> GetProducts(List<string> asinList) { var productsToReturn = new List<ProductDTO>(); var allItemSearchRequests = new ItemSearchRequest[asinList.Count]; for (int i = 0; i < asinList.Count; i++ ) { allItemSearchRequests[i] = new ItemSearchRequest { SearchIndex = "Books", Power = ("asin:" + asinList[i]), ResponseGroup = new[] {"Small"} }; } //ItemSearchRequest can only be made in 2's var myItemSearchRequests = new ItemSearchRequest[2]; bool isASINListOdd = (asinList.Count % 2 != 0); for (int i = 0; i < asinList.Count ; i++) { myItemSearchRequests[i%2] = allItemSearchRequests[i]; if ((i != 0 && ((i + 1)%2 == 0)) || (isASINListOdd && asinList.Count == (i + 1))) { var itemSearch = new ItemSearch { AWSAccessKeyId = awsAccessKeyId, AssociateTag = associateTag, Request = myItemSearchRequests }; var itemSearchResponse = AWSECommerceServiceInstance.AWSECommerceService.ItemSearch(itemSearch); if (itemSearchResponse.Items == null) { if (itemSearchResponse.OperationRequest.Errors != null) { MapErrors(itemSearchResponse.OperationRequest.Errors); } break; } productsToReturn.AddRange(MapProducts(itemSearchResponse.Items)); myItemSearchRequests = new ItemSearchRequest[2]; } } return productsToReturn; }
// perform the Amazon search with SOAP and return results as a DataTable public static DataTable GetAmazonDataWithSoap() { // Create Amazon objects AWSECommerceService amazonService = new AWSECommerceService(); ItemSearch itemSearch = new ItemSearch(); ItemSearchRequest itemSearchRequest = new ItemSearchRequest(); ItemSearchResponse itemSearchResponse; // Setup Amazon objects itemSearch.SubscriptionId = BalloonShopConfiguration.SubscriptionId; itemSearchRequest.Keywords = BalloonShopConfiguration.SearchKeywords; itemSearchRequest.SearchIndex = BalloonShopConfiguration.SearchIndex; itemSearchRequest.ResponseGroup = BalloonShopConfiguration.ResponseGroups.Split(','); itemSearch.Request = new AmazonEcs.ItemSearchRequest[1] { itemSearchRequest }; // Will store search results DataTable responseTable = GetResponseTable(); // If any problems occur, we prefer to send back empty result set // instead of throwing exception try { itemSearchResponse = amazonService.ItemSearch(itemSearch); Item[] results = itemSearchResponse.Items[0].Item; // Browse the results foreach (AmazonEcs.Item item in results) { // product with incomplete information will be ignored try { //create a datarow, populate it and add it to the table DataRow dataRow = responseTable.NewRow(); dataRow["ASIN"] = item.ASIN; dataRow["ProductName"] = item.ItemAttributes.Title; dataRow["ProductImageUrl"] = item.SmallImage.URL; dataRow["ProductPrice"] = item.OfferSummary.LowestNewPrice. FormattedPrice; responseTable.Rows.Add(dataRow); } catch { // Ignore products with incomplete information } } } catch (Exception e) { // ignore the error } // return the results return responseTable; }
public DataTable GetProducts(string productName) { DataTable products = new DataTable(); products.Columns.Add("Product", typeof(string)); products.Columns.Add("Price", typeof(string)); products.Columns.Add("Image", typeof(string)); products.Columns.Add("url", typeof(string)); // Instantiate Amazon ProductAdvertisingAPI client AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); for (int i = 1; i <= 5; i++) { // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "All"; request.Keywords = productName + " -kindle"; request.ResponseGroup = new string[] { "ItemAttributes", "Images"}; request.ItemPage = i.ToString(); request.Condition = Condition.New; request.Availability = ItemSearchRequestAvailability.Available; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AssociateTag = "testfo-20"; // send the ItemSearch request ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); foreach (var item in response.Items[0].Item) { try { products.Rows.Add(item.ItemAttributes.Title, item.ItemAttributes.ListPrice.FormattedPrice.Replace("$", ""),item.SmallImage.URL, item.DetailPageURL); } catch (NullReferenceException ex) { Debug.WriteLine("Caught Exception: " + ex.Message); continue; } } } return products; }
public static List<System.Drawing.Image> SearchAlbumArt(string keywords) { try { keywords = CleanString(keywords); ItemSearchRequest itemRequest = new ItemSearchRequest(); itemRequest.Keywords = keywords; // http://docs.amazonwebservices.com/AWSECommerceService/2009-02-01/DG/index.html?ItemLookup.html itemRequest.SearchIndex = "Music"; // Other possibly valid choices:Classical, DigitalMusic, Mp3Downloads, Music, MusicTracks, itemRequest.ResponseGroup = new string[] { "Images" }; // images only ItemSearch request = new ItemSearch(); request.AWSAccessKeyId = Credentials.AmazonAccessKeyId; request.Request = new ItemSearchRequest[] { itemRequest }; BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient(binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(Credentials.AmazonAccessKeyId, Credentials.AmazonSecretKey)); ItemSearchResponse response = client.ItemSearch(request); // Determine if book was found bool itemFound = ((response.Items[0].Item != null) && (response.Items[0].Item.Length > 0)); if (itemFound) { List<System.Drawing.Image> images = new List<System.Drawing.Image>(); foreach (Item currItem in response.Items[0].Item) { try { if (currItem != null && currItem.LargeImage != null) images.Add(ConvertByteArrayToImage(GetBytesFromUrl(currItem.LargeImage.URL))); } catch { } } return images; } } catch (Exception) {} return null; }
private static ItemSearch getItemSearch(string searchTerms, int page) { ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = SearchIndex; request.MerchantId = "All"; request.Title = searchTerms; request.ResponseGroup = ResponseGroups; request.ItemPage = page.ToString(); ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = AccessKeyId; itemSearch.AssociateTag = AssociateTag; return itemSearch; }
private Items[] LookForArtistAndName(string iArtist, string iName) { ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "Music"; request.ResponseGroup = new string[] { "Medium", "Tracks" }; request.Sort = "relevancerank"; request.Title = iName; request.Artist = iArtist; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; //itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AWSAccessKeyId = _IWebServicesManager.AmazonaccessKeyId; itemSearch.AssociateTag = string.Empty; // send the ItemSearch request ItemSearchResponse response = _AmazonClient.ItemSearch(itemSearch); return response.Items; }
//returns response from Amazon search request public static ItemSearchResponse search(ItemSearchRequest request) { // create a WCF Amazon ECS client BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient(binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(Globals.ACCESS_KEY_ID, Globals.SECRET_KEY)); ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = Globals.ACCESS_KEY_ID; itemSearch.AssociateTag = ""; // issue the ItemSearch request return client.ItemSearch(itemSearch); }
public AWSHelper(string ENDPOINT, string MY_AWS_ACCESS_KEY_ID, string MY_AWS_SECRET_KEY, string NAMESPACE) { // Constructor to populate responseItems // Accepts various standard AWS parameters and search string // Basic HTTP binding BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; // Client client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress(ENDPOINT)); client.ChannelFactory.Endpoint.Behaviors.Add( new AmazonSigningEndpointBehavior(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, NAMESPACE)); // ItemSearchREquest request = new ItemSearchRequest(); request.ResponseGroup = new string[] { "Medium" }; itemSearch = new ItemSearch(); itemSearch.AWSAccessKeyId = MY_AWS_ACCESS_KEY_ID; }
public async Task<Item[]> FindItemsAsync(ItemCategory category, string keywords) { var itemSearch = new ItemSearch { AssociateTag = _associateTag, AWSAccessKeyId = _accessKey, Request = new ItemSearchRequest[] { new ItemSearchRequest { SearchIndex = Enum.GetName(typeof(ItemCategory), category), Keywords = keywords, ItemPage = "1", ResponseGroup = new string[] { "Images", "ItemAttributes" } } } }; var searchResult = await _amazonClient.ItemSearchAsync(new ItemSearchRequest1 { ItemSearch = itemSearch }); var items = searchResult.ItemSearchResponse.Items[0].Item; if (items == null) { return new Item[0]; } return items.Select(item => ToRetailerItem(item)).ToArray(); }
private async void SearchName() { var search = _clienteService.SearchName(ItemSearch.ToLower()); if (search.Count > 0) { ListClients = search; } else { if (reference == 0) { await _pageDialog.DisplayAlertAsync("Atenção", "Não foi encontrado nada com esse resultado", "OK"); ListClients = search; } else { ListClients = search; reference = 0; } } }
private static ItemSearchResponse AmazonRequestByPage(string Keyword, int page, string SearchIndex) { #region Set Amazon Search parameters ItemSearch search = new ItemSearch(); //replace these with your account info search.AssociateTag = "X"; string accessKeyId = "X"; string secretKey = "X"; ItemSearchRequest req = new ItemSearchRequest(); req.ResponseGroup = new string[] { "Medium" }; req.SearchIndex = SearchIndex; req.ItemPage = Convert.ToString(page); req.Keywords = Keyword; req.Availability = ItemSearchRequestAvailability.Available; search.Request = new ItemSearchRequest[] { req }; Amazon.AWSECommerceServicePortTypeClient amzwc = new Amazon.AWSECommerceServicePortTypeClient(); amzwc.ChannelFactory.Endpoint.EndpointBehaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); try { ItemSearchResponse resp = amzwc.ItemSearch(search); return(resp); } catch (Exception ex) { ItemSearchResponse resp = null; return(resp); } #endregion }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("AmazonTest [keyword]"); return; } AWSECommerceService service = new AWSECommerceService(); ItemSearchRequest req = new ItemSearchRequest(); req.Keywords = args[0]; req.SearchIndex = "Books"; req.ResponseGroup = new string[] { "ItemAttributes" }; req.ItemPage = "1"; ItemSearch search = new ItemSearch(); search.AWSAccessKeyId = "xxx"; search.Request = new ItemSearchRequest[] { req }; ItemSearchResponse res = service.ItemSearch(search); if (res.Items[0].Request.Errors != null) { Console.WriteLine("error:{0}", res.Items[0].Request.Errors[0].Message); } if (res.Items[0].Item != null) { foreach (Item item in res.Items[0].Item) { Console.WriteLine("title:{0}", item.ItemAttributes.Title); } } }
public static Activity AmazonSearch(Activity activity, string searchTerm) { var accessKeyId = "AKIAIOXGBEXN4SPR5PYQ"; var secretKey = "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"; //var client = new AWSECommerceServicePortTypeClient(); //client.ChannelFactory.Endpoint.Behaviors.Add(new Amazon.AmazonSigningEndpointBehavior(accessKeyId, secretKey)); var binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport) { MaxReceivedMessageSize = int.MaxValue }; var client = new AWSECommerceServicePortTypeClient(binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); var lookup = new ItemSearch(); var request = new ItemSearchRequest(); lookup.AssociateTag = accessKeyId; lookup.AWSAccessKeyId = secretKey; request.Keywords = searchTerm; var response = client.ItemSearch(lookup); var sb = new StringBuilder(); sb.AppendLine($"Hello {activity.From.Name} - Amazon Search results for {searchTerm}." + Environment.NewLine); var reply = activity.CreateReply(sb.ToString()); reply.Type = "message"; return(reply); }
static void Main(string[] args) { // Instantiate Amazon ProductAdvertisingAPI client BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); //Adding this uses the code in Amazon.PAAPI.WCF to sign requests automagically amazonClient.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior()); // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "DVD"; request.Title = "Matrix"; request.ResponseGroup = new string[] { "Small" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AssociateTag = "notag"; //this is a required param, so I just use a dummy value which seems to work // send the ItemSearch request ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); // write out the results from the ItemSearch request foreach (var item in response.Items[0].Item) { Console.WriteLine(item.ItemAttributes.Title); } Console.WriteLine("\n\n<<< done...enter any key to continue >>>"); Console.ReadLine(); }
public List <ItemSearch> GetItemsSearch(string companyId, string categoryId) { string aQuery = "SELECT I.ItemName,C.Name as CompanyName, S.AvailableQuantity,S.AvailableQuantity as Qty,I.ReorderLevel FROM ItemSetup I left outer join StockIn S on S.itemId = I.Sl left outer join Company C on C.Sl = I.CompanyName left outer join CategorySetup CA on CA.Sl = I.CategoryName WHERE C.Sl = '" + companyId + "' or CA.Sl = '" + categoryId + "' "; Command = new SqlCommand(aQuery, Connection); Connection.Open(); Reader = Command.ExecuteReader(); List <ItemSearch> Itemlist = new List <ItemSearch>(); while (Reader.Read()) { ItemSearch item = new ItemSearch(); item.AvailableQuantity = Convert.ToInt32(Reader["AvailableQuantity"]); item.CompanyName = Reader["CompanyName"].ToString(); item.ItemName = Reader["ItemName"].ToString(); item.Quantity = Convert.ToInt32(Reader["AvailableQuantity"]); item.ReorderLevel = Convert.ToInt32(Reader["ReorderLevel"]); Itemlist.Add(item); } Connection.Close(); return(Itemlist); }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("AmazonTest [keyword]"); return; } AWSECommerceService service = new AWSECommerceService(); ItemSearchRequest req = new ItemSearchRequest(); req.Keywords = args[0]; req.SearchIndex = "Books"; req.ResponseGroup = new string[] {"ItemAttributes"}; req.ItemPage = "1"; ItemSearch search = new ItemSearch(); search.AWSAccessKeyId = "xxx"; search.Request = new ItemSearchRequest[] { req }; ItemSearchResponse res = service.ItemSearch(search); if (res.Items[0].Request.Errors != null) { Console.WriteLine("error:{0}", res.Items[0].Request.Errors[0].Message); } if (res.Items[0].Item != null) { foreach (Item item in res.Items[0].Item) { Console.WriteLine("title:{0}", item.ItemAttributes.Title); } } }
public ItemSearchResponse ItemSearch(string ItemPage, string SearchIndex, string[] ResponseGroup, string Title) { // BasicHttpBinding configuration BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; binding.MaxBufferSize = int.MaxValue; // create a WCF Amazon ECS client AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); // prepare an ItemSearchRequest ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = SearchIndex; request.ResponseGroup = ResponseGroup; request.Title = Title; request.ItemPage = ItemPage; // prepare an ItemSearch ItemSearch search = new ItemSearch(); search.Request = new ItemSearchRequest[] { request }; search.AWSAccessKeyId = accessKeyId; search.AssociateTag = "http://affiliate-program.amazon.com/"; //get ItemSearchResponse ItemSearchResponse response = client.ItemSearch(search); return(response); }
// the program starts here static void Main(string[] args) { // create a WCF Amazon ECS client BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); ItemLookupRequest request2 = new ItemLookupRequest(); request2.ItemId = new String[] { "2817801997" }; request2.IdType = ItemLookupRequestIdType.ISBN; request2.ResponseGroup = new String[] { "Medium" }; request2.IdTypeSpecified = true; request2.SearchIndex = "Books"; ItemLookup itemLookup = new ItemLookup(); itemLookup.Request = new ItemLookupRequest[] { request2 }; itemLookup.AWSAccessKeyId = accessKeyId; itemLookup.AssociateTag = "213"; ItemLookupResponse response2 = client.ItemLookup(itemLookup); foreach (var item in response2.Items[0].Item) { // Create a web request to the URL for the picture System.Net.WebRequest webRequest = HttpWebRequest.Create(item.MediumImage.URL); // Execute the request synchronuously HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); // Create an image from the stream returned by the web request //pCover.Image = new System.Drawing.Bitmap(webResponse.GetResponseStream()); // Finally, close the request webResponse.Close(); Console.WriteLine(item.ItemAttributes.Title); } // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "Books"; request.Title = "Node.js"; request.ResponseGroup = new string[] { "Small" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; //itemSearch.AssociateTag = "testsite09f-21"; itemSearch.AssociateTag = "213"; itemSearch.AWSAccessKeyId = accessKeyId; // issue the ItemSearch request ItemSearchResponse response = client.ItemSearch(itemSearch); // write out the results foreach (var item in response.Items[0].Item) { Console.WriteLine(item.ItemAttributes.Title); } Console.ReadLine(); }
public static ProductsPages ItemSearchRequestResult(string title, int webPage, int itemPerPage) { BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; binding.MaxBufferSize = int.MaxValue; // create a WCF Amazon ECS client AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); // prepare an ItemSearch request ItemSearchRequest searchRequest = new ItemSearchRequest(); searchRequest.SearchIndex = "Books"; searchRequest.Title = title; searchRequest.ResponseGroup = new string[] { "ItemAttributes", "Offers" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { searchRequest }; itemSearch.AWSAccessKeyId = accessKeyId; itemSearch.AssociateTag = "http://affiliate-program.amazon.com/"; int skip = (webPage - 1) * itemPerPage; int startPage; if ((skip % 10) <= 2 && (skip % 10) != 0) { startPage = webPage + 1; } else { startPage = webPage; } int startItem = skip % 10; ProductsPages productPages = new ProductsPages(); for (int page = startPage; page <= 10; page++) { searchRequest.ItemPage = Convert.ToString(page); ItemSearchResponse searchResponse = client.ItemSearch(itemSearch); int totalPages = Convert.ToInt32(searchResponse.Items[0].TotalPages); if (totalPages < 10) { productPages.Pages = totalPages; } else { productPages.Pages = 10; } if (searchResponse.Items[0].Item != null) { for (int i = startItem; i < searchResponse.Items[0].Item.Length; i++) { if (itemPerPage > 0) { var item = searchResponse.Items[0].Item[i]; Debug.WriteLine("{0}\t{1}\tpage:{2}\titem:{3}", item.ItemAttributes.Title, Convert.ToDecimal(item.OfferSummary.LowestNewPrice.Amount) / 100, page, i); Product currentProduct = new Product() { Title = item.ItemAttributes.Title, Price = Convert.ToDecimal(item.OfferSummary.LowestNewPrice.Amount) / 100 }; productPages.Products.Add(currentProduct); itemPerPage--; } else { break; } } startItem = 0; Thread.Sleep(1000); //Amazon can ask requests only once per second } } return(productPages); }
protected override Id3Tag[] GetTagInfo(Id3Tag tag) { var request = new ItemSearchRequest { SearchIndex = "Music", Keywords = tag.Artists.Value + " " + tag.Title.Value, ResponseGroup = new[] { "Small", "Images" } }; var itemSearch = new ItemSearch { AWSAccessKeyId = "1YY0CZVHA1BX3BEV5H82", AssociateTag = "knanamusin-20", Request = new[] { request } }; ItemSearchResponse response; var service = new AWSECommerceService(); try { response = service.ItemSearch(itemSearch); } catch (SoapException) { return(Id3Tag.Empty); } finally { service.Dispose(); } if (response == null || response.Items == null || response.Items.Length == 0) { return(Id3Tag.Empty); } Item[] items = response.Items[0].Item; if (items == null || items.Length == 0) { return(Id3Tag.Empty); } var results = new List <Id3Tag>(items.Length); foreach (Item item in items) { var result = new Id3Tag(); result.Album.Value = item.ItemAttributes.Title; IList <string> artists; if (item.ItemAttributes.Artist == null || item.ItemAttributes.Artist.Length == 0) { artists = tag.Artists.Value; } else { artists = item.ItemAttributes.Artist; } foreach (string artist in artists) { result.Artists.Value.Add(artist); } result.Publisher.Value = item.ItemAttributes.Manufacturer; result.PaymentUrl.Url = item.DetailPageURL; if (item.LargeImage != null) { PictureFrame picture = Utility.GetPicture(item.LargeImage.URL); if (picture != null) { result.Pictures.Add(picture); } } if (item.MediumImage != null) { PictureFrame picture = Utility.GetPicture(item.MediumImage.URL); if (picture != null) { result.Pictures.Add(picture); } } if (item.SmallImage != null) { PictureFrame picture = Utility.GetPicture(item.SmallImage.URL); if (picture != null) { result.Pictures.Add(picture); } } results.Add(result); } return(results.ToArray()); }
private static void GetArtistCredits(Artist artist, AmazonIndex index, AmazonCountry country, int pageIndex) { ItemSearch itemsearch = new ItemSearch(); ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = index.ToString(); request.ItemPage = pageIndex.ToString(CultureInfo.InvariantCulture); EntityType entityType = EntityType.Music; switch (index) { case AmazonIndex.Books: request.Author = artist.FulleName; entityType = EntityType.Books; break; case AmazonIndex.Music: request.Artist = artist.FulleName; entityType = EntityType.Music; break; } request.ResponseGroup = new [] { "Small" }; itemsearch.Request = new [] { request }; itemsearch.AWSAccessKeyId = Aws1; itemsearch.AssociateTag = AssociateTag; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( new BasicHttpBinding("AWSECommerceServiceBinding"), new EndpointAddress(string.Format("https://webservices.amazon.{0}/onca/soap?Service=AWSECommerceService", country.ToString()))); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(Aws1, Aws2)); try { ItemSearchResponse response = client.ItemSearch(itemsearch); if (response.Items.GetLength(0) > 0) { if (response.Items[0].Item != null) { foreach (Item item in response.Items[0].Item) { if (artist.ArtistCredits.Any(c => c.Title.ToUpperInvariant() == item.ItemAttributes.Title.ToUpperInvariant()) == false) { ArtistCredits credit = new ArtistCredits(); credit.Title = item.ItemAttributes.Title; #region Released if (string.IsNullOrWhiteSpace(item.ItemAttributes.ReleaseDate) == false) { DateTime date; if (DateTime.TryParse(item.ItemAttributes.ReleaseDate, out date) == true) { credit.ReleaseDate = date; } } else if (string.IsNullOrWhiteSpace(item.ItemAttributes.PublicationDate) == false) { DateTime date; if (DateTime.TryParse(item.ItemAttributes.PublicationDate, out date) == true) { credit.ReleaseDate = date; } } #endregion credit.EntityType = entityType; // credit.BuyLink = item.DetailPageURL; // credit.BuyLink = string.Format(@"http://www.amazon.{0}/gp/aws/cart/add.html?ASIN.1={1}&AWSAccessKeyId={2}&AssociateTag={3}", // country.ToString(), item.ASIN, Aws1,AssociateTag); credit.BuyLink = string.Format(@"http://www.amazon.{0}/exec/obidos/ASIN/{1}/{2}/", country, item.ASIN, AssociateTag); #region Description if (item.EditorialReviews != null) { string description = string.Empty; foreach (EditorialReview edito in item.EditorialReviews) { if (edito.Content.Length > description.Length && edito.IsLinkSuppressed == false) { description = edito.Content; break; } } credit.Notes = Util.PurgeHtml(description); } #endregion artist.ArtistCredits.Add(credit); } } int totalpage; if (int.TryParse(response.Items[0].TotalPages, out totalpage)) { if (pageIndex < totalpage) { pageIndex++; GetArtistCredits(artist, index, country, pageIndex); } } } } } catch (ServerTooBusyException) { } }
public bool SearchForMovie(string movieName, int maxResults) { _locale = AmazonLocale.FromString(Properties.Settings.Default.AmazonLocale); BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress(_locale.URL) ); client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior()); try { ItemSearchRequest req = new ItemSearchRequest(); req.SearchIndex = Properties.Settings.Default.AmazonSearchMode; req.Title = movieName; req.ItemPage = @"1"; req.ResponseGroup = new string[] { "Medium", "Subjects" }; ItemSearch iSearch = new ItemSearch(); iSearch.Request = new ItemSearchRequest[] { req }; iSearch.AWSAccessKeyId = Properties.Settings.Default.AWEAccessKeyId; ItemSearchResponse res = client.ItemSearch(iSearch); if (res.Items[0].Item.Length > 0) { Item[] amazonItems = res.Items[0].Item; int itemsToProcess = Math.Min(amazonItems.Length, maxResults); if (amazonItems != null) { // convert Amazon Items to generic collection of DVDs OMLSDKTitle[] searchResults = new OMLSDKTitle[itemsToProcess]; for (int i = 0; i < itemsToProcess; i++) { searchResults[i] = AmazonToOML.TitleFromAmazonItem(amazonItems[i]); } int totalPages = 0; int totalItems = 0; if (res.Items[0].TotalPages != null) { totalPages = Convert.ToInt32(res.Items[0].TotalPages); } if (res.Items[0].TotalResults != null) { totalItems = Convert.ToInt32(res.Items[0].TotalResults); } _searchResult = (new AmazonSearchResult(searchResults, totalPages, totalItems)); } else { _searchResult = (new AmazonSearchResult(null, 0, 0)); } return(true); } } catch { _searchResult = (new AmazonSearchResult(null, 0, 0)); } return(false); }
// TODO: maybe return tuples instead public static ResponseContainer AWSQuery(String keywords, String group = "All", int page = 1, int perPage = 10, bool fetchAll = false) { ItemSearch search0 = new ItemSearch(); search0.AWSAccessKeyId = awsAccessKeyId; search0.AssociateTag = associateTag; // Search request ItemSearchRequest request0 = new ItemSearchRequest(); request0.ResponseGroup = new string[] { "ItemAttributes, Images, OfferSummary, Offers, OfferFull" }; request0.SearchIndex = group; request0.Keywords = keywords; ResponseContainer returnData = new ResponseContainer(); int p = page; int skip = 0; int nulls = 0; // Send error if more than 6 null responses if (p > 1) { // Api always returns 10 items p--; string s = perPage.ToString(); string s1 = s.Substring(s.Length - 1, 1); int.TryParse(s1, out skip); } while (true) { Debug.WriteLine("So far {0} items", returnData.products.Count); Debug.WriteLine("Sleeping thread for 8 seconds."); Thread.Sleep(8000); // Necessary, app wont work without this Debug.WriteLine("Resuming thread."); request0.ItemPage = p.ToString(); search0.Request = new ItemSearchRequest[] { request0 }; ItemSearchResponse response0 = new ItemSearchResponse(); try { response0 = client.ItemSearch(search0); } catch (ServerTooBusyException) { returnData.error = "Amazon server busy."; break; } if (nulls >= 6) { returnData.error = "Amazon server returned null."; break; } if (response0.Items == null) // sometimes is null { Debug.WriteLine("ITEMS property was null - skipped loop"); nulls++; continue; } foreach (Items items in response0.Items) { if (items.Item == null) // sometimes is null { Debug.WriteLine("ITEM property was null - skipped loop"); nulls++; continue; } foreach (Item item in items.Item) { string title = item.ItemAttributes.Title; string listPrice = "Failed to fetch"; try { listPrice = TrimDollarSign(item.OfferSummary.LowestNewPrice.FormattedPrice); } catch (NullReferenceException) { Debug.WriteLine("NullReferenceException at Listprice"); } string imageURL = ""; try { imageURL = item.LargeImage.URL; } catch (NullReferenceException) { Debug.WriteLine("NullReferenceException at ImageURL"); } string pageURL = item.DetailPageURL; if (skip <= 0) { returnData.products.Add(new Product(title, listPrice, imageURL, pageURL)); Debug.WriteLine("Reached adding part"); } else { skip--; } if (returnData.products.Count >= perPage) { break; } } if (returnData.products.Count >= perPage) { break; } } p += 1; if (returnData.products.Count >= perPage) { returnData.totalResults = (int.Parse(response0.Items[0].TotalResults) / perPage) - 1; break; } } return(returnData); }
public ItemSearchResponse SearchItem(ItemSearchRequest itemSearchRequest, string[] responseGroup) { itemSearchRequest.ResponseGroup = responseGroup; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { itemSearchRequest }; itemSearch.AWSAccessKeyId = AccessKeyId; itemSearch.AssociateTag = AssociateTag; using (AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient(_BasicHttpBinding, _EndPointAddress)) { client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(AccessKeyId, SecretKey)); return client.ItemSearch(itemSearch); } }
public string addBin(InventoryBin itemBin) { NetSuiteService service = new NetSuiteService(); service.CookieContainer = new CookieContainer(); NetsuiteUser user = new NetsuiteUser("3451682", "*****@*****.**", "1026", "tridenT168"); Passport passport = user.prepare(user); Status status = service.login(passport).status; SearchStringField objItemName = new SearchStringField(); objItemName.searchValue = itemBin.InventoryItem.ItemName; objItemName.@operator = SearchStringFieldOperator.@is; objItemName.operatorSpecified = true; ItemSearch objItemSearch = new ItemSearch(); objItemSearch.basic = new ItemSearchBasic(); objItemSearch.basic.itemId = objItemName; SearchResult objItemResult = service.search(objItemSearch); if (objItemResult.status.isSuccess != true) { Console.WriteLine("Cannot find Item " + itemBin.InventoryItem.ItemName + " " + objItemResult.status.statusDetail[0].message); return "Cannot find Item " + itemBin.InventoryItem.ItemName + " " + objItemResult.status.statusDetail[0].message; } if (objItemResult.recordList.Count() != 1) { Console.WriteLine("More than one item found for item " + itemBin.InventoryItem.ItemName); return "More than one item found for item " + itemBin.InventoryItem.ItemName; } SearchStringField objBinNumber = new SearchStringField(); objBinNumber.searchValue = itemBin.BinNumber; objBinNumber.@operator = SearchStringFieldOperator.@is; objBinNumber.operatorSpecified = true; BinSearch objBinSearch = new BinSearch(); objBinSearch.basic = new BinSearchBasic(); objBinSearch.basic.binNumber = objBinNumber; SearchResult objBinResult = service.search(objBinSearch); if (objBinResult.status.isSuccess == false) { Console.WriteLine("Unable to find bin " + itemBin.BinNumber + " in NetSuite"); return "Unable to find bin " + itemBin.BinNumber + " in NetSuite"; } if (objItemResult.recordList.Count() != 1) { Console.WriteLine("More than one bin found for " + itemBin.BinNumber); return "More than one bin found for " + itemBin.BinNumber; } if (((Bin)objBinResult.recordList[0]).isInactive) { Console.WriteLine("Bin Number " + itemBin.BinNumber + " is inactive in NetSuite"); return "Bin Number " + itemBin.BinNumber + " is inactive in NetSuite"; } RecordRef objAddBin = new RecordRef(); objAddBin.type = RecordType.bin; objAddBin.typeSpecified = true; objAddBin.internalId = ((Bin)objBinResult.recordList[0]).internalId; objAddBin.name = ((Bin)objBinResult.recordList[0]).binNumber; InventoryItemBinNumber objItemBinNumber = new InventoryItemBinNumber(); objItemBinNumber.location = ((Bin)objBinResult.recordList[0]).location.internalId; objItemBinNumber.binNumber = objAddBin; InventoryItemBinNumber[] objItemBinNumbers = new InventoryItemBinNumber[1]; objItemBinNumbers[0] = objItemBinNumber; if(((InventoryItem)objItemResult.recordList[0]).useBins==true) { //Initialize item to update InventoryItem objInventoryItem = new InventoryItem(); objInventoryItem.internalId = ((InventoryItem)objItemResult.recordList[0]).internalId; objInventoryItem.salesDescription = ((InventoryItem)objItemResult.recordList[0]).salesDescription; objInventoryItem.purchaseDescription = ((InventoryItem)objItemResult.recordList[0]).purchaseDescription; objInventoryItem.binNumberList = new InventoryItemBinNumberList(); objInventoryItem.binNumberList.binNumber = objItemBinNumbers; objInventoryItem.binNumberList.replaceAll = false; //Request to update item with bins WriteResponse objWriteResponse = service.update(objInventoryItem); if (objWriteResponse.status.isSuccess != true) { Console.WriteLine(objWriteResponse.status.statusDetail[0].message); return objWriteResponse.status.statusDetail[0].message; } Console.WriteLine("Bins successfully updated for: "+((InventoryItem)objItemResult.recordList[0]).itemId); return "Bins successfully updated for: " + ((InventoryItem)objItemResult.recordList[0]).itemId; } return string.Empty; }
public async Task<SongData> getData(SongData newSong, string fullRequest) { try { // Instantiate Amazon ProductAdvertisingAPI client BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService")); // add authentication to the ECS client amazonClient.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "MP3Downloads"; request.RelationshipType = new string[] { "Tracks" }; request.ResponseGroup = new string[] { "ItemAttributes", "Images", "Offers", "RelatedItems" }; request.Keywords = fullRequest; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = accessKeyId; itemSearch.AssociateTag = "1330-3170-0573"; // send the ItemSearch request ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); var item = response.Items[0].Item[0]; //<ProductTypeName>DOWNLOADABLE_MUSIC_TRACK</ProductTypeName> if (response.Items[0].Item[0].ItemAttributes.ProductTypeName == "DOWNLOADABLE_MUSIC_ALBUM") { item = response.Items[0].Item[1]; } // if no response to search if (item == null) { try { // Try new search and remove the album newSong.Album = "UNKNOWN"; // Re-iterate over the search method await getData(newSong, fullRequest); } catch { // Removing the album produced no results // Continue forward... } } // Get year from full Release Date var var formatYear = DateTime.Parse(item.ItemAttributes.ReleaseDate).Year; newSong.UserID = 1; newSong.LocationID = 1; newSong.Album = item.RelatedItems[0].RelatedItem[0].Item.ItemAttributes.Title; newSong.Artist = item.ItemAttributes.Creator[0].Value; newSong.Title = item.ItemAttributes.Title; newSong.Year = (int)formatYear; newSong.Genre = item.ItemAttributes.Genre; newSong.FilePath = ""; newSong.Duration = (int)item.ItemAttributes.RunningTime.Value; newSong.Price = item.Offers.Offer[0].OfferListing[0].Price.FormattedPrice; newSong.ASIN = item.ASIN; newSong.Artwork = item.LargeImage.URL; return newSong; } catch { return newSong; } }
public bool SearchForMovie(string movieName, int maxResults) { _locale = AmazonLocale.FromString(Properties.Settings.Default.AmazonLocale); BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress(_locale.URL) ); client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior()); try { ItemSearchRequest req = new ItemSearchRequest(); req.SearchIndex = Properties.Settings.Default.AmazonSearchMode; req.Title = movieName; req.ItemPage = @"1"; req.ResponseGroup = new string[] { "Medium", "Subjects" }; ItemSearch iSearch = new ItemSearch(); iSearch.Request = new ItemSearchRequest[] { req }; iSearch.AWSAccessKeyId = Properties.Settings.Default.AWEAccessKeyId; ItemSearchResponse res = client.ItemSearch(iSearch); if (res.Items[0].Item.Length > 0) { Item[] amazonItems = res.Items[0].Item; int itemsToProcess = Math.Min(amazonItems.Length, maxResults); if (amazonItems != null) { // convert Amazon Items to generic collection of DVDs OMLSDKTitle[] searchResults = new OMLSDKTitle[itemsToProcess]; for (int i = 0; i < itemsToProcess; i++) { searchResults[i] = AmazonToOML.TitleFromAmazonItem(amazonItems[i]); } int totalPages = 0; int totalItems = 0; if (res.Items[0].TotalPages != null) totalPages = Convert.ToInt32(res.Items[0].TotalPages); if (res.Items[0].TotalResults != null) totalItems = Convert.ToInt32(res.Items[0].TotalResults); _searchResult = (new AmazonSearchResult(searchResults, totalPages, totalItems)); } else { _searchResult = (new AmazonSearchResult(null, 0, 0)); } return true; } } catch { _searchResult = (new AmazonSearchResult(null, 0, 0)); } return false; }
public void GetReviews() { // Instantiate Amazon ProductAdvertisingAPI client AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); DbWrappers wrapper = new DbWrappers(); List <Product> list = wrapper.GetAllProducts(); foreach (var prod in list) { if (hasReviews == true) { hasReviews = false; } // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "Electronics"; //request.Title = "WCF"; request.Keywords = prod.Title; request.ResponseGroup = new string[] { "ItemAttributes", "Offers", "OfferSummary", "Reviews" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AssociateTag = "newmobiles0d-20"; // send the ItemSearch request try { ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); foreach (var item in response.Items[0].Item) { if (!hasReviews) { // Getting title Console.WriteLine("Title: " + item.ItemAttributes.Title); //Getting manufacturer of the item Console.WriteLine("Manufacturer: " + item.ItemAttributes.Manufacturer); //Getting model Console.WriteLine("Model:" + item.ItemAttributes.Model); if ((item.CustomerReviews.HasReviews) == true) { string str = item.CustomerReviews.IFrameURL; string final_response = ""; try { //Getting html from IFrame URL HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(str); req.Method = "POST"; HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader stream = new StreamReader(res.GetResponseStream()); final_response = stream.ReadToEnd(); GetMainPageHtml(final_response, prod.Id); } catch (Exception e) { Console.WriteLine(e); } } } else { break; } } } catch (Exception e1) { } } Console.WriteLine("done...enter any key to continue>"); Console.ReadLine(); }
void Start() { TipsManager.fromScene = true; Debug.Log("Mod of Level"+Prefs.level()%2); if (LevelManager.gameMode == "arcade") arcadeTxt.SetActive (true); ObjectHit.errorCount = 0; itemCount = 0; itemHintCount = 0; levelComplete = false; Points.load (); updateStats (); for (int x=0; x<3; x++) { bg[x].sprite = (Sprite)Resources.Load ("Scenes/" + LevelManager.sceneId + "/bg", typeof(Sprite)); } fg.sprite = (Sprite)Resources.Load ("Scenes/" + LevelManager.sceneId + "/fg", typeof(Sprite)); hoManager = new HiddenObjects (hidObjects); hidObjects = hoManager.getObj (); CluesDiff.load (psw, psw2); itemSearch = new ItemSearch (clues); clues = itemSearch.getClues (); }
public static Collection <PartialMatche> Search(string search, string artist, AmazonIndex index, AmazonCountry country, AmazonBrowserNode node) { ItemSearch service = new ItemSearch(); ItemSearchRequest request = new ItemSearchRequest(); request.Title = search.Trim(); request.SearchIndex = index.ToString(); if (string.IsNullOrWhiteSpace(artist) == false) { if (index == AmazonIndex.Books) { request.Author = artist; } else { request.Artist = artist; } } request.Sort = "salesrank"; if (node != AmazonBrowserNode.None) { request.BrowseNode = Enum.Format(typeof(AmazonBrowserNode), node, "d"); } switch (index) { case AmazonIndex.VideoGames: request.ResponseGroup = new [] { "Medium", "Images" }; break; default: request.ResponseGroup = new [] { "Small", "Images" }; break; } service.Request = new [] { request }; service.AWSAccessKeyId = Aws1; service.AssociateTag = AssociateTag; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( new BasicHttpBinding("AWSECommerceServiceBinding"), new EndpointAddress(string.Format("https://webservices.amazon.{0}/onca/soap?Service=AWSECommerceService", country.ToString()))); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(Aws1, Aws2)); ItemSearchResponse response = client.ItemSearch(service); if (response.Items.GetLength(0) > 0) { if (response.Items[0].Item != null) { return(CreatePartialMatch(response.Items[0].Item, index)); } else { return(null); } } else { return(null); } }
private static void ItemSearchFunc() { var request = new ItemSearchRequest { Keywords = "tv", SearchIndex = "All", ItemPage = _itemPage.ToString(CultureInfo.InvariantCulture) }; var itemSearch = new ItemSearch { Request = new ItemSearchRequest[] {request}, AWSAccessKeyId = AwsAccessKeyId, AssociateTag = AssociateTag }; if (_itemSearchResponse == null) { try { _itemSearchResponse = AmazonClient.ItemSearch(itemSearch); Console.WriteLine("TotalResults: " + _itemSearchResponse.Items[0].TotalResults); Console.WriteLine("TotalPages: " + _itemSearchResponse.Items[0].TotalPages); } catch (ServerTooBusyException) { ItemSearchFunc(); } } if (_itemSearchResponse == null) return; ItemLookupFunc(_itemSearchResponse.Items[0].Item.ToList()); }
public void Search(string searchtag) { if (searchtag == null) { return; } if (searchtag == string.Empty) { return; } m_imageList.DisposeAndClearList(); AWSECommerceService amazonService = new AWSECommerceService(); ItemSearch itemSearch = new ItemSearch(); ItemSearchRequest itemSearchRequest = new ItemSearchRequest(); ItemSearchResponse itemSearchResponse; itemSearch.SubscriptionId = "1CTB4YKNPBV7EK9SQVG2"; itemSearch.AssociateTag = ""; itemSearchRequest.Keywords = searchtag; itemSearchRequest.SearchIndex = "DVD"; itemSearchRequest.ResponseGroup = new string[] { "Large", "Images", "ItemAttributes", "OfferFull" }; itemSearchRequest.ItemPage = "1"; itemSearch.Request = new ItemSearchRequest[1] { itemSearchRequest }; //send the query try { itemSearchResponse = amazonService.ItemSearch(itemSearch); } catch (Exception) { return; } Items[] itemsResponse = itemSearchResponse.Items; if (itemsResponse == null) { return; } for (int i = 0; i < itemsResponse.Length; ++i) { Items itemList = itemsResponse[i]; if (itemList == null) { continue; } if (itemList.Item == null) { continue; } for (int x = 0; x < itemList.Item.Length; ++x) { Item item = itemList.Item[x]; if (item == null) { continue; } Image image = item.LargeImage; if (image != null) { if (image.URL != null && image.URL.Length > 0) { m_imageList.Add(image.URL); } } } } }
//geting products for sending mail to the user public Dictionary <string, string> GetProductAgainstHashTag(string prodName) { Dictionary <string, string> proddescDic = new Dictionary <string, string>(); string title = ""; string manufacturer = ""; string model = ""; string brand = ""; string priceInDollar = ""; double price = 0.0; string[] features; // Instantiate Amazon ProductAdvertisingAPI client AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); BasicHttpBinding httpBinding = new BasicHttpBinding(); httpBinding.Name = "AWSECommerceServiceBindingNoTransport"; httpBinding.MaxReceivedMessageSize = 2147483647; httpBinding.MaxBufferSize = 2147483647; // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); //request.SearchIndex = "Electronics"; request.SearchIndex = "All"; //request.Title = "WCF"; request.Keywords = prodName; request.ResponseGroup = new string[] { "ItemAttributes", "Offers", "OfferSummary", "Reviews" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AssociateTag = "newmobiles0d-20"; // send the ItemSearch request try { ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); foreach (var item in response.Items[0].Item) { if (!GetReview) { //Getting title try { title = item.ItemAttributes.Title; proddescDic["Title"] = title; if (!(title.Equals(""))) { GetReview = true; } } catch (Exception) { }; //Getting manufacturer of the item try { manufacturer = item.ItemAttributes.Manufacturer; proddescDic["Manufacturer"] = manufacturer; } catch (Exception) { }; //Getting model try { model = item.ItemAttributes.Model; proddescDic["Model"] = model; } catch (Exception) { }; //Getting Brand try { brand = item.ItemAttributes.Brand; proddescDic["Brand"] = brand; } catch (Exception) { }; //Getting Amount in Dollar try { priceInDollar = item.ItemAttributes.ListPrice.FormattedPrice; proddescDic["Price"] = priceInDollar; } catch (Exception) { }; //Getting Amount try { price = int.Parse(item.ItemAttributes.ListPrice.Amount); } catch (Exception) { }; try { features = item.ItemAttributes.Feature; string fea = ""; foreach (var f in features) { fea = fea + "\n" + f; } proddescDic["Features"] = fea; } catch (Exception) { }; } if (reviewLoopIterator < 5) { if ((item.CustomerReviews.HasReviews) == true) { reviewLoopIterator++; string str = item.CustomerReviews.IFrameURL; string final_response = ""; try { //Getting html from IFrame URL HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(str); req.Method = "POST"; HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader stream = new StreamReader(res.GetResponseStream()); final_response = stream.ReadToEnd(); GetMainPageHtml(final_response); } catch (Exception e) { Console.WriteLine(e); } } } else { break; } } return(proddescDic); } catch (Exception e1) { return(proddescDic); } }
public Dictionary <string, string> GetProdDetails(string pName) { Dictionary <string, string> proddescDic = new Dictionary <string, string>(); string title = ""; string manufacturer = ""; string model = ""; string brand = ""; string priceInDollar = ""; double price = 0.0; string[] features; string fea = ""; // Instantiate Amazon ProductAdvertisingAPI client AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); request.SearchIndex = "All"; //request.Title = "WCF"; request.Keywords = pName; request.ResponseGroup = new string[] { "ItemAttributes", "Offers", "OfferSummary", "Reviews" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = ConfigurationManager.AppSettings["accessKeyId"]; itemSearch.AssociateTag = "newmobiles0d-20"; // send the ItemSearch request try { bool getNextTitle = false; ItemSearchResponse response = amazonClient.ItemSearch(itemSearch); foreach (var item in response.Items[0].Item) { if (!IsCorrect) { //Getting title try { title = item.ItemAttributes.Title; if (!(title.ToLower().Contains("Stick".ToLower())) || (title.ToLower().Contains("Case".ToLower())) || (title.ToLower().Contains("Cover".ToLower()))) { proddescDic["Title"] = title; IsCorrect = true; getNextTitle = false; } else { getNextTitle = true; proddescDic["Title"] = title; } } catch (Exception) { }; if (!getNextTitle) { //Getting manufacturer of the item try { manufacturer = item.ItemAttributes.Manufacturer; proddescDic["Manufacturer"] = manufacturer; } catch (Exception) { }; //Getting model try { model = item.ItemAttributes.Model; proddescDic["Model"] = model; } catch (Exception) { }; //Getting Brand try { brand = item.ItemAttributes.Brand; proddescDic["Brand"] = brand; } catch (Exception) { }; //Getting Amount in Dollar try { priceInDollar = item.ItemAttributes.ListPrice.FormattedPrice; proddescDic["Price"] = priceInDollar; } catch (Exception) { }; //Getting Amount try { string p = item.ItemAttributes.ListPrice.Amount; } catch (Exception) { }; try { features = item.ItemAttributes.Feature; foreach (var f in features) { fea = fea + "\n" + f; } proddescDic["Features"] = fea; Console.WriteLine(fea); } catch (Exception) { }; } } if ((item.CustomerReviews.HasReviews) == true) { string str = item.CustomerReviews.IFrameURL; string final_response = ""; try { //Getting html from IFrame URL HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(str); req.Method = "POST"; HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader stream = new StreamReader(res.GetResponseStream()); final_response = stream.ReadToEnd(); GetMainPageHtml(final_response); } catch (Exception e) { Console.WriteLine(e); } } } } catch (Exception e1) { } return(proddescDic); }
public static NonInventoryResaleItem GetItem(string strProductId) { NonInventoryResaleItem objItem = new NonInventoryResaleItem(); try { ItemSearchBasic objItemSearchBasic = new ItemSearchBasic(); objItemSearchBasic.vendorCode = new SearchStringField(); objItemSearchBasic.vendorCode.@operator = SearchStringFieldOperator.startsWith; objItemSearchBasic.vendorCode.searchValue = strProductId;// "CST34434A_B"; objItemSearchBasic.vendorCode.operatorSpecified = true; objItemSearchBasic.isInactive = new SearchBooleanField(); objItemSearchBasic.isInactive.searchValue = false; objItemSearchBasic.isInactive.searchValueSpecified = false; ItemSearch objItemSearch = new ItemSearch(); objItemSearch.basic = objItemSearchBasic; SearchResult objSearchResult = _service.search(objItemSearch); if (objSearchResult.recordList != null && objSearchResult.recordList.Length == 1) { if (objSearchResult.recordList[0] is NonInventoryResaleItem) { objItem = (NonInventoryResaleItem)objSearchResult.recordList[0]; //RecordRef objRecord = new RecordRef(); //objRecord.internalId = objItem.internalId; //objRecord.type = RecordType.nonInventoryResaleItem; //objRecord.typeSpecified = true; //ReadResponse objResponse = _service.get(objRecord); //objItem = (NonInventoryResaleItem)objResponse.record; } } } catch (Exception) { } return objItem; }
static void Main(String[] args) { // Write to console Console.WriteLine("Welcome to the C# Station Tutorial!"); // Set default args if two are not supplied if (args.Length != 2) { args = new string[] { "DVD", "Matrix" }; } // Get searchIndex and keywords from the command line string searchIndex = args[0]; string keywords = args[1]; // Create an instance of the Product Advertising API service AWSECommerceServicePortTypeClient ecs = new AWSECommerceServicePortTypeClient(); /* Error: * An endpoint configuration section for contract 'amazon.ecs.AWSECommerceServicePortType' * could not be loaded because more than one endpoint configuration for that contract was * found. Please indicate the preferred endpoint configuration section by name. */ // Create ItemSearch wrapper ItemSearch search = new ItemSearch(); //search.AssociateTag = assocTag; search.AWSAccessKeyId = accessKeyId; // Create a request object ItemSearchRequest request = new ItemSearchRequest(); // Fill request object with request parameters request.ResponseGroup = new string[] { "ItemAttributes" }; // Set SearchIndex and Keywords request.SearchIndex = searchIndex; request.Keywords = keywords; // Set the request on the search wrapper search.Request = new ItemSearchRequest[] { request }; Console.WriteLine(request.Keywords); try { //Send the request and store the response in response Console.WriteLine("try..."); ItemSearchResponse response = ecs.ItemSearch(search); //Check for null response if (response == null) { throw new Exception("Server Error - no response recieved!"); } //ItemSearchResult[] itemsArray = response.GetItemSearchResult; if (response.OperationRequest.Errors != null) { throw new Exception(response.OperationRequest.Errors[0].Message); } Console.WriteLine("Response: " + response.ToString()); Console.WriteLine("Length: " + response.Items.Length); } catch (Exception e) { Console.WriteLine("...catch"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Err: " + e.Message); Console.WriteLine("Type: " + e.GetType()); Console.WriteLine("Inner Exception: " + e.InnerException.Message); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Press any key to quit..."); // http://www.webdesigncompany.co.uk/blog/2011/10/5/using-the-new-amazon-product-api-wsdl-with-microsoftwebservices3/ // Err: The remote server returned an unexpected response: (400) Bad Request. } Console.ReadKey(); }
public static ArrayList GetItemByItemNumber(string strProductId) { ArrayList arrItem = new ArrayList(); try { strProductId = strProductId.Trim(); SearchStringCustomField objItemNumber = new SearchStringCustomField(); objItemNumber.@operator = SearchStringFieldOperator.@is; objItemNumber.operatorSpecified = true; objItemNumber.searchValue = strProductId; objItemNumber.internalId = "custitemcst_itemnumber"; ItemSearchBasic objItemSearchBasic = new ItemSearchBasic(); objItemSearchBasic.customFieldList = new SearchCustomField[] { objItemNumber }; objItemSearchBasic.isInactive = new SearchBooleanField(); objItemSearchBasic.isInactive.searchValue = false; objItemSearchBasic.isInactive.searchValueSpecified = true; ItemSearch objItemSearch = new ItemSearch(); objItemSearch.basic = objItemSearchBasic; SearchResult objSearchResult = _service.search(objItemSearch); if (objSearchResult.recordList != null && objSearchResult.recordList.Length > 0) { for (int i = 0; i < objSearchResult.recordList.Length; i++) { if (objSearchResult.recordList[i] is NonInventoryResaleItem) { NonInventoryResaleItem objItem = (NonInventoryResaleItem)objSearchResult.recordList[i]; arrItem.Add(new string[] { objItem.internalId, objItem.internalId + " " + objItem.vendorName + ": " + objItem.salesDescription }); } if (objSearchResult.recordList[i] is LotNumberedAssemblyItem) { LotNumberedAssemblyItem objItem = (LotNumberedAssemblyItem)objSearchResult.recordList[i]; arrItem.Add(new string[] { objItem.internalId, objItem.internalId + " " + objItem.vendorName + ": " + objItem.displayName }); } } } } catch (Exception) { } return arrItem; }
public static ArrayList GetItemId(string strProductId) { ArrayList arrItem = new ArrayList(); try { strProductId = strProductId.Trim(); ItemSearchBasic objItemSearchBasic = new ItemSearchBasic(); objItemSearchBasic.vendorName = new SearchStringField(); if (strProductId.StartsWith("QB0")) { strProductId = GetPackedBunch(strProductId); objItemSearchBasic.vendorName.@operator = SearchStringFieldOperator.@is; if (string.IsNullOrEmpty(strProductId)) { return arrItem; } } else { objItemSearchBasic.vendorName.@operator = SearchStringFieldOperator.startsWith; } objItemSearchBasic.vendorName.searchValue = strProductId;// "CST34434A_B"; objItemSearchBasic.vendorName.operatorSpecified = true; objItemSearchBasic.isInactive = new SearchBooleanField(); objItemSearchBasic.isInactive.searchValue = false; objItemSearchBasic.isInactive.searchValueSpecified = true; ItemSearch objItemSearch = new ItemSearch(); objItemSearch.basic = objItemSearchBasic; SearchResult objSearchResult = _service.search(objItemSearch); if (objSearchResult.recordList != null && objSearchResult.recordList.Length > 0) { for (int i = 0; i < objSearchResult.recordList.Length; i++) { if (objSearchResult.recordList[i] is NonInventoryResaleItem) { NonInventoryResaleItem objItem = (NonInventoryResaleItem)objSearchResult.recordList[i]; arrItem.Add(new string[] { objItem.internalId, objItem.internalId + " " + objItem.vendorName + ": " + objItem.salesDescription }); } if (objSearchResult.recordList[i] is LotNumberedAssemblyItem) { LotNumberedAssemblyItem objItem = (LotNumberedAssemblyItem)objSearchResult.recordList[i]; arrItem.Add(new string[] { objItem.internalId, objItem.internalId + " " + objItem.vendorName + ": " + objItem.displayName }); } } } } catch (Exception) { } return arrItem; }
private ItemSearch SearchRequest(ItemSearchRequest request) { var itemSearch = new ItemSearch { Request = new[] { request }, AWSAccessKeyId = AccessKey, AssociateTag = AssociateTag }; return itemSearch; }
public ActionResult Search(string searchIndex = null, string searchKeywords = null, int pageNr = 1) { ItemSearch results = new ItemSearch(searchIndex, searchKeywords, pageNr); return(View(results)); }
private void GetInfoFromAmazon(string keyword, string technology) { AWSProductData productData = new AWSProductData(); ItemSearch srch = null; try { ItemSearchRequest req = new ItemSearchRequest(); req.Keywords = keyword; req.SearchIndex = "Books"; srch = new ItemSearch(); srch.AssociateTag = "libertyassocia00A"; srch.SubscriptionId = "0SD959SZV6KXV3BKE2R2"; srch.Request = new ItemSearchRequest[1]; srch.Request[0] = req; } catch (System.Exception e) { lblStatus.Text = e.Message; } ItemSearchResponse response; int salesRank = -1; string isbn = string.Empty; string author = string.Empty; string pubDate = string.Empty; string publisher = string.Empty; string title = string.Empty; string strURL = string.Empty; Items[] responseItems = null; try { response = productData.ItemSearch(srch); // get back ItemSearchResponse responseItems = response.Items; // Items returns array of Items foreach (Items items in responseItems) { // Item property of Items is an array of Item objects Item[] arrayOfItem = items.Item; foreach (Item item in arrayOfItem) { isbn = FixQuotes(item.ItemAttributes.ISBN); salesRank = item.SalesRank == null ? -1 : Convert.ToInt32(item.SalesRank); author = FixQuotes(item.ItemAttributes.Author[0]); pubDate = FixQuotes(item.ItemAttributes.PublicationDate); publisher = FixQuotes(item.ItemAttributes.Publisher); title = FixQuotes(item.ItemAttributes.Title); strURL = item.DetailPageURL; // update the list box string results = title + " by " + author + ": " + publisher + ", " + pubDate + ". Rank: " + salesRank; lbOutput.Items.Add(results); lbOutput.SelectedIndex = lbOutput.Items.Count - 1; // update the database string commandString = @"Update BookInfo set isbn = '" + isbn + "', title = '" + title + "', publisher = '" + publisher + "', pubDate = '" + pubDate + "', rank = " + salesRank + ", link = '" + strURL + "', lastUpdate = '" + System.DateTime.Now + "', technology = '" + technology + "', author = '" + author + "' where isbn = '" + isbn + "'"; command.CommandText = commandString; try { // if no rows were affected, this is a new record connection.Open(); int numRowsAffected = command.ExecuteNonQuery(); if (numRowsAffected == 0) { commandString = @"Insert into BookInfo values ('" + isbn + "', '" + title + "', '" + publisher + "', '" + pubDate + "', '" + FixQuotes(strURL) + "', " + salesRank + ", '" + System.DateTime.Now + "', '" + technology + "', '" + author + "')"; command.CommandText = commandString; command.ExecuteNonQuery(); } } catch (Exception ex) { lblStatus.Text = ex.Message; lbOutput.Items.Add("Unable to update database!"); lbOutput.SelectedIndex = lbOutput.Items.Count - 1; } finally { connection.Close(); // clean up } Application.DoEvents(); // update the UI } } } catch (System.Exception ex) { lblStatus.Text = ex.Message; } } // close for GetInfoFromISBN
private void ShowItemEditor(object sender, RoutedEventArgs args) { ItemSearch.Show(); }
static void Main(string[] args) { AWSECommerceService Service = new AWSECommerceService(); ItemSearch itemSearch = new ItemSearch(); ItemSearchRequest request = new ItemSearchRequest(); // Keys itemSearch.AWSAccessKeyId = ""; // YOUR ACCESS KEY! itemSearch.AssociateTag = "meinkleinerbl-21"; // YOUR ASSOCIATE TAG! // Suchbereich eingrenzen request.ResponseGroup = new string[] { "Medium", "Offers" }; request.SearchIndex = "Blended"; request.Keywords = "Potter"; // Suchwort request.ItemPage = "1"; request.Count = "25"; // Maximum per Page itemSearch.Request = new ItemSearchRequest[] { request }; try { ItemSearchResponse response = Service.ItemSearch(itemSearch); Items[] itemsArray = response.Items; foreach (Items items in itemsArray) { Console.WriteLine("Total Pages; " + items.TotalPages); Console.WriteLine("Total Results; " + items.TotalResults); if (items != null) { if (items.Item != null) { for (int i = 0; i < items.Item.Length; i++) { Console.WriteLine(); Console.WriteLine("Title: " + items.Item[i].ItemAttributes.Title); if (items.Item[i].Offers.TotalOffers != "0") { if (items.Item[i].Offers.Offer[0].OfferListing[0].Price != null) { Console.WriteLine("Price: " + items.Item[i].Offers.Offer[0].OfferListing[0].Price.FormattedPrice); } } Console.WriteLine("SalesRank: " + items.Item[i].SalesRank); Console.WriteLine("SalesRank: " + items.Item[i].ASIN); Console.WriteLine("Description: " + items.Item[i].ItemAttributes.Label); } } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }
public static void GetCDCover(CD cd) { try { if (cd == null) { return; } Cursor.Current = Cursors.WaitCursor; string filenameFront = cd.GetCDCoverFilename(CoverType.Front); string filenameBack = cd.GetCDCoverFilename(CoverType.Back); AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); ItemSearch itemSearch = new ItemSearch(); itemSearch.AWSAccessKeyId = "0FN016GTSMZHJD0C7YG2"; ItemSearchRequest itemSearchRequest = new ItemSearchRequest(); itemSearchRequest.Artist = cd.Artist; itemSearchRequest.Keywords = cd.Title; itemSearchRequest.SearchIndex = "Music"; itemSearchRequest.Sort = "salesrank"; itemSearchRequest.ResponseGroup = new string[] { "Images" }; itemSearchRequest.ItemPage = "1"; itemSearch.Request = new ItemSearchRequest[1] { itemSearchRequest }; itemSearch.AssociateTag = "hitbase-21"; ItemSearchResponse itemSearchResponse = null; bool nothingFound = false; try { itemSearchResponse = amazonClient.ItemSearch(itemSearch); } catch { nothingFound = true; } try { if (!nothingFound && itemSearchResponse != null && itemSearchResponse.Items != null && itemSearchResponse.Items.Length > 0 && itemSearchResponse.Items[0].Item != null && itemSearchResponse.Items[0].Item.Length > 0) { WebClient webclient = new WebClient(); webclient.UseDefaultCredentials = true; webclient.Proxy.Credentials = CredentialCache.DefaultCredentials; Item item = itemSearchResponse.Items[0].Item[0]; if (item.LargeImage != null && !string.IsNullOrEmpty(item.LargeImage.URL)) { webclient.DownloadFile(item.LargeImage.URL, filenameFront); } else if (item.MediumImage != null && !string.IsNullOrEmpty(item.MediumImage.URL)) { webclient.DownloadFile(item.MediumImage.URL, filenameFront); } else if (item.SmallImage != null && !string.IsNullOrEmpty(item.SmallImage.URL)) { webclient.DownloadFile(item.SmallImage.URL, filenameFront); } if (item.ImageSets != null && item.ImageSets.Length > 0) { foreach (ImageSet imageSet in item.ImageSets) { //foreach (ImageSet imageSet in imgSet) { if (imageSet.Category == "variant") { if (imageSet.LargeImage != null) { webclient.DownloadFile(imageSet.LargeImage.URL, filenameBack); } else if (imageSet.MediumImage != null) { webclient.DownloadFile(imageSet.MediumImage.URL, filenameBack); } else if (imageSet.SmallImage != null) { webclient.DownloadFile(imageSet.SmallImage.URL, filenameBack); } } } } } } } catch (Exception e) { FormUnhandledException formUnhandledException = new FormUnhandledException(e); formUnhandledException.ShowDialog(); } if (File.Exists(filenameFront)) { cd.CDCoverFrontFilename = filenameFront; } if (File.Exists(filenameBack)) { cd.CDCoverBackFilename = filenameBack; } } finally { Cursor.Current = Cursors.Default; } }
private void itemSearchFormNavAction(object sender, object data) { NavBox itemSearchNavBox = (NavBox)sender; ItemSearch itemSearchForm = (ItemSearch)data; NavBox.NavAction action = itemSearchNavBox.Action; if (action == NavBox.NavAction.BACKANDSUBMIT) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); action = NavBox.NavAction.SUBMIT; } switch (action) { case NavBox.NavAction.SUBMIT: if (itemSearchNavBox.IsCustom) { string custDet = itemSearchNavBox.CustomDetail; if (custDet.Equals("GetCategory") || custDet.Equals("TemporaryICN")) { itemSearchForm.Hide(); this.nextState = SaleFlowState.DescribeMerchandise; } else if (custDet.Equals("ViewItemDetails")) { //Show describe item form as show dialog int iItemIdx = GlobalDataAccessor.Instance.DesktopSession.DescribeItemPawnItemIndex; int iCategoryMask = GlobalDataAccessor.Instance.DesktopSession.CategoryXML.GetCategoryMask(GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.RetailItems[iItemIdx].CategoryCode); DescribedMerchandise dmPawnItem = new DescribedMerchandise(iCategoryMask); Item pawnItem = GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.RetailItems[iItemIdx]; Item.PawnItemMerge(ref pawnItem, dmPawnItem.SelectedPawnItem, true); ((CustomerProductDataVO)GlobalDataAccessor.Instance.DesktopSession.ActiveRetail).Items.Insert(0, pawnItem); // End GetCat5 populate // Placeholder for ReadOnly DescribedItem.cs DescribeItem myForm = new DescribeItem(GlobalDataAccessor.Instance.DesktopSession, CurrentContext.READ_ONLY, 0) { SelectedProKnowMatch = ((CustomerProductDataVO)GlobalDataAccessor.Instance.DesktopSession.ActiveRetail).Items[0].SelectedProKnowMatch }; myForm.ShowDialog(itemSearchForm); } else if (custDet.Equals("LookupCustomer")) { itemSearchForm.Hide(); if (GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer != null && !string.IsNullOrEmpty(GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.CustomerNumber)) { this.nextState = SaleFlowState.ManagePawnApplication; } else { this.nextState = SaleFlowState.LookupCustomer; } } else if (custDet.Equals("Reload")) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); this.nextState = SaleFlowState.ItemSearch; } else if (custDet.Equals("ProcessTender")) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); this.nextState = SaleFlowState.TenderIn; } } else { //Default happy path next state this.parentForm = itemSearchForm; this.nextState = SaleFlowState.ProcessTender; } break; case NavBox.NavAction.CANCEL: this.nextState = SaleFlowState.CancelFlow; break; default: throw new ApplicationException("" + action.ToString() + " is not a valid state for ItemSearch"); } this.executeNextState(); }
private void SearchNow(int page) { listBoxResult.Items.Clear(); amazonProgressControl.labelStatus.Text = StringTable.SearchWebService; amazonProgressControl.progressBar.Value = 0; amazonProgressControl.Visible = true; amazonProgressControl.Refresh(); ItemSearchRequest request = new ItemSearchRequest(); request.Artist = textBoxArtist.Text; request.Title = textBoxTitle.Text; request.Keywords = textBoxEAN.Text; request.ItemPage = (page + 1).ToString(); request.ResponseGroup = new string[] { "Large", "Tracks" }; request.SearchIndex = "Music"; AmazonSort sort = ((AmazonSortItem)comboBoxSort.Items[comboBoxSort.SelectedIndex]).sort; switch (sort) { case AmazonSort.YearDescend: request.Sort = "-releasedate"; break; case AmazonSort.YearAscend: request.Sort = "releasedate"; break; case AmazonSort.TitleAscend: request.Sort = "titlerank"; break; case AmazonSort.TitleDescend: request.Sort = "-titlerank"; break; case AmazonSort.BestSelling: request.Sort = "salesrank"; break; } AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(); ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = "0FN016GTSMZHJD0C7YG2"; itemSearch.AssociateTag = "hitbase-21"; bool nothingFound = false; ItemSearchResponse searchResult = null; try { searchResult = amazonClient.ItemSearch(itemSearch); } catch { nothingFound = true; } if (!nothingFound) { int totalCount = Convert.ToInt32(searchResult.Items[0].TotalResults); labelResult.Text = String.Format(StringTable.Result, totalCount); if (totalCount < 1) // Leider nichts gefunden { amazonProgressControl.Visible = false; return; } WebClient webclient = new WebClient(); webclient.UseDefaultCredentials = true; webclient.Proxy.Credentials = CredentialCache.DefaultCredentials; amazonProgressControl.progressBar.Maximum = searchResult.Items[0].Item.Length; int count = 0; foreach (Items searchItems in searchResult.Items) { foreach (Item details in searchItems.Item) { amazonProgressControl.labelStatus.Text = String.Format(StringTable.ReadingResult, count + 1, searchItems.Item.Length); amazonProgressControl.labelStatus.Refresh(); CDListBoxWithCoverItem item = new CDListBoxWithCoverItem(); if (details.ItemAttributes.Artist != null && details.ItemAttributes.Artist.Length > 0) { item.Artist = details.ItemAttributes.Artist[0].ToString(); } item.Title = details.ItemAttributes.Title; item.Label = details.ItemAttributes.Label; if (details.ItemAttributes.ReleaseDate != null) { item.Year = details.ItemAttributes.ReleaseDate; } else { if (details.ItemAttributes.PublicationDate != null) { item.Year = details.ItemAttributes.PublicationDate; } } item.ASIN = details.ASIN; item.EAN = details.ItemAttributes.EAN; /*if (details.CustomerReviews != null) * item.Ranking = details.CustomerReviews.AverageRating; * else * item.Ranking = 0;*/ if (details.EditorialReviews != null && details.EditorialReviews.Length > 0) { item.EditorNotes = details.EditorialReviews[0].Content; } if (details.Tracks != null) { item.CD = new CDItem[details.Tracks.Length]; foreach (TracksDisc disc in details.Tracks) { int discNumber = Convert.ToInt32(disc.Number) - 1; item.CD[discNumber] = new CDItem(); item.CD[discNumber].Tracks = new string[disc.Track.Length]; foreach (TracksDiscTrack track in disc.Track) { int trackNumber = Convert.ToInt32(track.Number) - 1; // Das hier wird wohl (von WCF?) fälschlicherweise als CodePage 1252 interpretiert, obwohl es UTF-8 ist. // Muss dann konvertiert werden. Encoding iso = Encoding.GetEncoding("Windows-1252"); Encoding utf8 = Encoding.UTF8; byte[] utfBytes = iso.GetBytes(track.Value); string msg = utf8.GetString(utfBytes); item.CD[discNumber].Tracks[trackNumber] = msg; } } } else { // Wenn keine Track-Daten vorhanden sind, ein Pseudo-Track erzeugen item.CD = new CDItem[1]; item.CD[0] = new CDItem(); item.CD[0].Tracks = new string[1]; item.CD[0].Tracks[0] = StringTable.Unknown; } if (details.SmallImage != null) { item.smallImageUrl = details.SmallImage.URL; } if (details.MediumImage != null) { item.mediumImageUrl = details.MediumImage.URL; } if (details.LargeImage != null) { item.largeImageUrl = details.LargeImage.URL; } if (details.ImageSets != null && details.ImageSets.Length > 0) { //foreach (ImageSet[] imgSet in details.ImageSets) { foreach (ImageSet imageSet in details.ImageSets) { if (imageSet.Category == "variant") { if (imageSet.SmallImage != null) { item.backCoverSmallImageUrl = imageSet.SmallImage.URL; } if (imageSet.MediumImage != null) { item.backCoverMediumImageUrl = imageSet.MediumImage.URL; } if (imageSet.LargeImage != null) { item.backCoverLargeImageUrl = imageSet.LargeImage.URL; } } } } } item.Image = GetImage(webclient, details); listBoxResult.Items.Add(item); amazonProgressControl.progressBar.PerformStep(); count++; } } if (totalCount > 10) { pagerControl.NumberOfPages = (totalCount + 9) / 10; pagerControl.Visible = true; } else { pagerControl.Visible = false; } } else { labelResult.Text = String.Format(StringTable.Result, 0); pagerControl.Visible = false; } amazonProgressControl.Visible = false; }
/// <summary> /// NavBox OnAction Handler for Lookup Customer /// </summary> /// <param name="sender"></param> /// <param name="data"></param> private void lookupCustFormNavAction(object sender, object data) { if (sender == null || data == null) { throw new ApplicationException("Lookup customer form navigation action handler received invalid data"); } var lookupCustNavBox = (NavBox)sender; var lookupCustForm = (LookupCustomer)data; var lookupAction = lookupCustNavBox.Action; if (lookupAction == NavBox.NavAction.BACKANDSUBMIT) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); lookupAction = NavBox.NavAction.SUBMIT; } var itemSearchFrm = new ItemSearch(); Form currForm = GlobalDataAccessor.Instance.DesktopSession.HistorySession.Lookup(itemSearchFrm); if (currForm.GetType() == typeof(ItemSearch)) { currForm.Hide(); } if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Lookup("TenderIn")) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.HideForm("TenderIn"); } switch (lookupAction) { case NavBox.NavAction.SUBMIT: if (lookupCustNavBox.IsCustom) { string custDet = lookupCustNavBox.CustomDetail; //Look for add customer if (custDet.Equals("AddCustomer") || custDet.Equals("CreateCustomer")) { //Execute add customer this.nextState = SaleFlowState.ManagePawnApplication; } else if (custDet.Equals("ExistingCustomer")) { this.nextState = SaleFlowState.ExistingCustomer; } else if (custDet.Equals("LookupCustomerResults")) { this.nextState = SaleFlowState.LookupCustomerResults; } else if (custDet.Equals("LookupVendorResults")) { this.nextState = SaleFlowState.LookupVendorResults; } else if (custDet.Equals("ManagePawnApplication")) { this.nextState = SaleFlowState.ManagePawnApplication; } } else { //Default happy path next state this.parentForm = lookupCustForm; this.nextState = SaleFlowState.LookupCustomerResults; } break; case NavBox.NavAction.CANCEL: this.nextState = SaleFlowState.CancelFlow; break; default: throw new ApplicationException("" + lookupAction.ToString() + " is not a valid state for LookupCustomer"); } this.executeNextState(); }
public override bool GetResults(string keywords, string imdbID, bool skipImages) { bool _result = false; // create a WCF Amazon ECS client BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); binding.MaxReceivedMessageSize = int.MaxValue; AWSECommerceServicePortTypeClient client = new AWSECommerceServicePortTypeClient( binding, new EndpointAddress(TargetUrl)); // add authentication to the ECS client client.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(accessKeyId, secretKey)); // prepare an ItemSearch request ItemSearchRequest request = new ItemSearchRequest(); //request.Count = "1"; request.Condition = ThumbGen.Amazon.ECS.Condition.All; request.SearchIndex = this.SearchIndex; //request.Title = title; request.Keywords = keywords;//title.Replace(" ", "%20"); request.ResponseGroup = new string[] { "Small", "Images" }; ItemSearch itemSearch = new ItemSearch(); itemSearch.Request = new ItemSearchRequest[] { request }; itemSearch.AWSAccessKeyId = accessKeyId; itemSearch.AssociateTag = associatedTag; // issue the ItemSearch request ItemSearchResponse response = null; try { response = client.ItemSearch(itemSearch); } catch { return(_result); } if (response == null) { response = client.ItemSearch(itemSearch); } if (response != null) { // prepare the ResultsList if (response.Items[0] != null && response.Items[0].Item != null) { foreach (Item item in response.Items[0].Item) { if (FileManager.CancellationPending) { return(ResultsList.Count != 0); } string _imageUrl = item.LargeImage == null ? string.Empty : item.LargeImage.URL; if (!string.IsNullOrEmpty(_imageUrl)) { ResultMovieItem _movieItem = new ResultMovieItem(null, item.ItemAttributes.Title, _imageUrl, CollectorName); _movieItem.MovieInfo = GetMovieInfo(item); ResultsList.Add(_movieItem); } } _result = true; } } return(_result); }
private const string assocTag = ""; /*!< This is the associate tag for the connection */ //! This is the method that defines a search and sends a request to Amazon /** * It contains code obtained from the "Product Advertising API Getting * Started Guide API Version 2011-08-01" found at * http://aws.amazon.com/archives/Product-Advertising-API/. */ public static void SendRequest() { // Get searchIndex and keywords from the command line string searchIndex = "DVD"; string keywords = "Matrix"; // Create an instance of the Product Advertising API service AWSECommerceServicePortTypeClient ecs = new AWSECommerceServicePortTypeClient(); /* Error: * An endpoint configuration section for contract 'amazon.ecs.AWSECommerceServicePortType' * could not be loaded because more than one endpoint configuration for that contract was * found. Please indicate the preferred endpoint configuration section by name. */ // Create ItemSearch wrapper ItemSearch search = new ItemSearch(); //search.AssociateTag = assocTag; search.AWSAccessKeyId = accessKeyId; // Create a request object ItemSearchRequest request = new ItemSearchRequest(); // Fill request object with request parameters request.ResponseGroup = new string[] { "ItemAttributes" }; // Set SearchIndex and Keywords request.SearchIndex = searchIndex; request.Keywords = keywords; // Set the request on the search wrapper search.Request = new ItemSearchRequest[] { request }; Console.WriteLine(request.Keywords); try { //Send the request and store the response in response Console.WriteLine("try..."); //ItemLookup itemLookup = new ItemLookup(); //ItemLookupRequest itemLookupRequest = new ItemLookupRequest(); //itemLookupRequest.SearchIndex = "DVD"; //itemLookupRequest.ItemId = new string[] { "B005OCFGTO" }; //itemLookupRequest.ResponseGroup = new string[] { "ItemAttributes" }; //itemLookup.Request = new ItemLookupRequest[] { itemLookupRequest }; //itemLookup.AWSAccessKeyId = accessKeyId; //ItemLookupResponse response = ecs.ItemLookup(itemLookup); ItemSearchResponse response = ecs.ItemSearch(search); //Check for null response if (response == null) { throw new Exception("Server Error - no response recieved!"); } //ItemSearchResult[] itemsArray = response.GetItemSearchResult; if (response.OperationRequest.Errors != null) { throw new Exception(response.OperationRequest.Errors[0].Message); } Console.WriteLine("Response: " + response.ToString()); Console.WriteLine("Length: " + response.Items.Length); } catch (Exception e) { Console.WriteLine("...catch"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Err: " + e.Message); Console.WriteLine("Type: " + e.GetType()); Console.WriteLine("Inner Exception: " + e.InnerException.Message); Console.ForegroundColor = ConsoleColor.White; // http://www.webdesigncompany.co.uk/blog/2011/10/5/using-the-new-amazon-product-api-wsdl-with-microsoftwebservices3/ // Err: The remote server returned an unexpected response: (400) Bad Request. /* * ==Error== ==Description== * IncompleteSignature The request signature does not conform to AWS standards. * * InvalidAction The action or operation requested is invalid. * * InvalidParameterCombination Parameters that must not be used together were used together. * * InvalidParameterValue A bad or out-of-range value was supplied for the input parameter. * * InvalidQueryParameter AWS query string is malformed, does not adhere to AWS standards. * * MissingAction The request is missing an action or operation parameter. * * MissingParameter An input parameter that is mandatory for processing the * request is not supplied. * * RequestExpired Request is past expires date or the request date * (either with 15 minute padding), or the request date * occurs more than 15 minutes in the future. * * Throttling Request was denied due to request throttling. */ } Console.WriteLine("Press any key to quit..."); //Console.ReadKey(); }
public Dictionary<string, double> getBins(string SKU) { NetSuiteService objService = new NetSuiteService(); objService.CookieContainer = new CookieContainer(); Passport passport = new Passport(); passport.account = "3451682"; passport.email = "*****@*****.**"; RecordRef role = new RecordRef(); role.internalId = "1026"; passport.role = role; passport.password = "******"; Passport objPassport = passport; Status objStatus = objService.login(objPassport).status; ItemSearchAdvanced isa = new ItemSearchAdvanced(); isa.savedSearchId = "141"; //substitute your own saved search internal ID ItemSearch iS = new ItemSearch(); ItemSearchBasic isb = new ItemSearchBasic(); SearchStringField itemSKU = new SearchStringField(); itemSKU.searchValue = SKU; itemSKU.@operator = SearchStringFieldOperator.contains; itemSKU.operatorSpecified = true; isb.itemId = itemSKU; iS.basic = isb; isa.criteria = iS; SearchResult sr = new SearchResult(); sr = objService.search(isa); if (sr.status.isSuccess != true) throw new Exception("Cannot find item."); Dictionary<string, double> binNumberList = new Dictionary<string, double>(); foreach (ItemSearchRow irow in sr.searchRowList) { if (irow.basic.itemId[0].searchValue == SKU) { binNumberList.Add(irow.basic.binNumber[0].searchValue, irow.basic.binOnHandAvail[0].searchValue); } } return binNumberList; }
private Items[] searchAmazonItems(String keyword, int startPage, int endPage) { List<ItemSearchRequest> itemSearchRequests = new List<ItemSearchRequest>(); ItemSearch itemSearch = new ItemSearch(); itemSearch.AWSAccessKeyId = Settings.AMAZON_ACCESS_KEY_ID; itemSearch.AssociateTag = Settings.AMAZON_ASSOCATE_TAG; // Valmistan otsingute päringud ette for (int i = startPage; i <= endPage; i++) { itemSearchRequests.Add(getItemSearchRequest(keyword, i)); } itemSearch.Request = itemSearchRequests.ToArray(); // Otsin esemeid ItemSearchResponse response = client.ItemSearch(itemSearch); return response.Items; }