Skip to content

Instantly share code, notes, and snippets.

@Hameds
Created November 2, 2017 10:58
Show Gist options
  • Save Hameds/d363637dd93751f7444f1e879efdec6f to your computer and use it in GitHub Desktop.
Save Hameds/d363637dd93751f7444f1e879efdec6f to your computer and use it in GitHub Desktop.
public Guid PlaceOrder(Guid customerId, ShoppingCart shoppingCart)
{
foreach (var item in shoppingCart.Items)
{
if (item.Quantity == 0)
{
throw new InvalidOrderException();
}
}
var customer = _customerService.GetCustomer(customerId);
PlaceOrderWithFulfillmentService(shoppingCart, customer);
var order = new Order();
return _orderDataService.Save(order);
}
private void PlaceOrderWithFulfillmentService(ShoppingCart shoppingCart, Customer customer)
{
//Open Session
var orderFulfillmentSessionId = _orderFulfillmentService.OpenSession(USERNAME, PASSWORD);
var firstItemId = shoppingCart.Items[0].ItemId;
var firstItemQuantity = shoppingCart.Items[0].Quantity;
//Check Inventory Level
var itemIsInInventory = _orderFulfillmentService.IsInInventory(orderFulfillmentSessionId, firstItemId, firstItemQuantity);
//Place Orders
var orderForFulfillmentService = new Dictionary();
orderForFulfillmentService.Add(firstItemId, firstItemQuantity);
var orderPlaced = _orderFulfillmentService.PlaceOrder(orderFulfillmentSessionId,
orderForFulfillmentService,
customer.ShippingAddress.ToString());
//Close Session
_orderFulfillmentService.CloseSession(orderFulfillmentSessionId);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment