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); })); }