コード例 #1
0
ファイル: ProductsPresenter.cs プロジェクト: CharlieBP/moq4
		public void PlaceOrder(Order order)
		{
			if (catalog.HasInventory(order.Product.Id, order.Quantity))
			{
				try
				{
					catalog.Remove(order.Product.Id, order.Quantity);
					order.Filled = true;
				}
				catch (InvalidOperationException)
				{
					// LOG?
				} 
			}
		}
コード例 #2
0
 public void SubmitOrder(Order order, Action<string> purchaseUrlCallback)
 {
     try {
         SubmitOrderCore(order, purchaseUrlCallback);
     }
     catch {
         purchaseUrlCallback(null);
     }
 }
コード例 #3
0
        private void SubmitOrderCore(Order order, Action<string> purchaseUrlCallback)
        {
            WebClient webClient = new WebClient();
            webClient.DownloadStringCompleted += delegate(object sender, DownloadStringCompletedEventArgs e) {
                if ((e.Cancelled == false) && (e.Error == null)) {
                    string xml = e.Result.Replace(@"xmlns=""http://webservices.amazon.com/AWSECommerceService/2005-03-23""", String.Empty);

                    if (String.IsNullOrEmpty(xml) == false) {
                        XDocument doc = XDocument.Parse(xml);
                        XElement purchaseUrlElement = doc.Descendants("PurchaseURL").Single();

                        if (purchaseUrlElement != null) {
                            string purchaseUrl = purchaseUrlElement.Value;
                            purchaseUrlCallback(purchaseUrl);

                            return;
                        }
                    }
                }
                purchaseUrlCallback(null);
            };

            StringBuilder sb = new StringBuilder();

            int itemNumber = 1;
            foreach (OrderItem item in order.Items) {
                sb.AppendFormat(CultureInfo.InvariantCulture, "&Item.{0}.ASIN={1}&Item.{0}.Quantity={2}",
                                itemNumber, item.Product.ASIN, item.Quantity);
                itemNumber++;
            }

            Uri requestUri = new Uri(String.Format(CartUriFormat, SubscriptionID, sb.ToString()));
            webClient.DownloadStringAsync(requestUri);
        }
コード例 #4
0
ファイル: ShoppingCart.cs プロジェクト: nikhilk/silverlightfx
        private void OnCheckoutCompleted(string purchaseUrl)
        {
            if (String.IsNullOrEmpty(purchaseUrl) == false) {
                _checkoutUrl = purchaseUrl;
                RaisePropertyChanged("CheckoutUrl");

                if (OrderCheckedOut != null) {
                    OrderCheckedOut(this, EventArgs.Empty);
                }

                _order = null;
                _checkoutUrl = null;
                RaisePropertyChanged("Order", "CheckoutUrl");
            }
            IsCheckingOut = false;
        }