/// <summary> /// Converts the response object into MarketplaceOrder object. Also makes the call to get the items for the order. /// </summary> /// <param name="order">The given amazon order object.</param> /// <returns>A MarketplaceOrder object</returns> private Contracts.MarketplaceOrder ConvertOrderResponseToMarketplaceOrder(Order order) { var marketplaceOrder = new Contracts.MarketplaceOrder() { BuyerShippingAddress1 = order.ShippingAddress.AddressLine1, BuyerShippingAddress2 = order.ShippingAddress.AddressLine2, BuyerShippingAddress3 = order.ShippingAddress.AddressLine3, BuyerShippingCity = order.ShippingAddress.City, BuyerShippingState = order.ShippingAddress.StateOrRegion, BuyerShippingZip = order.ShippingAddress.PostalCode, BuyerShippingName = order.ShippingAddress.Name, BuyerShippingPhone = order.ShippingAddress.Phone, BuyerEmail = order.BuyerEmail, BuyerName = order.BuyerName, OrderTotal = decimal.Parse(order.OrderTotal.Amount), MarketplaceOrderId = order.AmazonOrderId, OrderStatus = order.OrderStatus == OrderStatusEnum.PartiallyShipped ? Contracts.EOrderStatus.PartiallyShipped : Contracts.EOrderStatus.Unshipped, Marketplace = Contracts.EMarketplace.Amazon, ShipmentServiceLevel = order.ShipmentServiceLevelCategory }; var listItemsResponse = _AmazonOrdersClient.ListOrderItems(CreateListOrderItemsRequest(order)); if (!string.IsNullOrWhiteSpace(listItemsResponse.ListOrderItemsResult.NextToken)) { throw new MarketplaceWebServiceException("ListOrderItems returned a next token. Please restructure the code to continue pulling order items with this token."); } // Convert the item responses to marketplace order item objects. marketplaceOrder.Items = listItemsResponse.ListOrderItemsResult.OrderItems.OrderItem.Select(item => new Contracts.MarketplaceOrderItem() { MarketplaceItemId = item.ASIN, MarketplaceOrderItemId = item.OrderItemId, SKU = item.SellerSKU, Price = decimal.Parse(item.ItemPrice.Amount), ShippingPrice = decimal.Parse(item.ShippingPrice.Amount), Tax = decimal.Parse(item.ItemTax.Amount), ShippingTax = decimal.Parse(item.ShippingTax.Amount), QuantityShipped = Convert.ToInt32(item.QuantityShipped), QuantityUnshipped = Convert.ToInt32(item.QuantityOrdered - item.QuantityShipped) } ); return(marketplaceOrder); }
/// <summary> /// Converts the response object into MarketplaceOrder object. Also makes the call to get the items for the order. /// </summary> /// <param name="order">The given amazon order object.</param> /// <returns>A MarketplaceOrder object</returns> private Contracts.MarketplaceOrder ConvertOrderResponseToMarketplaceOrder(Order order) { var marketplaceOrder = new Contracts.MarketplaceOrder() { BuyerShippingAddress1 = order.ShippingAddress.AddressLine1, BuyerShippingAddress2 = order.ShippingAddress.AddressLine2, BuyerShippingAddress3 = order.ShippingAddress.AddressLine3, BuyerShippingCity = order.ShippingAddress.City, BuyerShippingState = order.ShippingAddress.StateOrRegion, BuyerShippingZip = order.ShippingAddress.PostalCode, BuyerShippingName = order.ShippingAddress.Name, BuyerShippingPhone = order.ShippingAddress.Phone, BuyerEmail = order.BuyerEmail, BuyerName = order.BuyerName, OrderTotal = decimal.Parse(order.OrderTotal.Amount), MarketplaceOrderId = order.AmazonOrderId, OrderStatus = order.OrderStatus == OrderStatusEnum.PartiallyShipped ? Contracts.EOrderStatus.PartiallyShipped : Contracts.EOrderStatus.Unshipped, Marketplace = Contracts.EMarketplace.Amazon, ShipmentServiceLevel = order.ShipmentServiceLevelCategory }; var listItemsResponse = _AmazonOrdersClient.ListOrderItems(CreateListOrderItemsRequest(order)); if (!string.IsNullOrWhiteSpace(listItemsResponse.ListOrderItemsResult.NextToken)) throw new MarketplaceWebServiceException("ListOrderItems returned a next token. Please restructure the code to continue pulling order items with this token."); // Convert the item responses to marketplace order item objects. marketplaceOrder.Items = listItemsResponse.ListOrderItemsResult.OrderItems.OrderItem.Select(item => new Contracts.MarketplaceOrderItem() { MarketplaceItemId = item.ASIN, MarketplaceOrderItemId = item.OrderItemId, SKU = item.SellerSKU, Price = decimal.Parse(item.ItemPrice.Amount), ShippingPrice = decimal.Parse(item.ShippingPrice.Amount), Tax = decimal.Parse(item.ItemTax.Amount), ShippingTax = decimal.Parse(item.ShippingTax.Amount), QuantityShipped = Convert.ToInt32(item.QuantityShipped), QuantityUnshipped = Convert.ToInt32(item.QuantityOrdered - item.QuantityShipped) } ); return marketplaceOrder; }