Ejemplo n.º 1
0
        protected override OrderItem OnExecute()
        {
            return(_transactionContext.Execute(() =>
            {
                try
                {
                    _inventoryService.DecrementQuantityOnHandCommand(CurrentOrderItem.ProductID, CurrentOrderItem.Quantity).Execute();
                }
                catch (InsufficientStockAmountException)
                {
                    return _orderItemDataProxy.BackOrder(_orderItemID, DateTime.Now);
                }

                return _orderItemDataProxy.Ship(_orderItemID, DateTime.Now);
            }));
        }
Ejemplo n.º 2
0
 protected override OrderItem OnExecute()
 {
     return(_transactionContext.Execute(() =>
     {
         var inventoryItem = _inventoryDataProxy.GetByProduct(CurrentOrderItem.ProductID);
         if (inventoryItem.QuantityOnHand - CurrentOrderItem.Quantity >= 0)
         {
             CurrentOrderItem.OrderStatus().SetShippedState();
             CurrentOrderItem.ShippedDate = DateTime.Now.ToUniversalTime();
             inventoryItem.QuantityOnHand -= CurrentOrderItem.Quantity;
             _inventoryDataProxy.Update(inventoryItem);
         }
         else
         {
             CurrentOrderItem.OrderStatus().SetBackorderedState();
             CurrentOrderItem.BackorderedDate = DateTime.Now.ToUniversalTime();
         }
         return _orderItemDataProxy.Ship(CurrentOrderItem);
     }));
 }