public void Process(Order order) { if (_validator.Validate(order)) { _shipper.Ship(order); } }
public void Ship(Order order) { if (_orderShipper == null) { _orderShipper = _orderShipperFactory.GetOrderShipper(); } _orderShipper.Ship(order); }
public SuccessResult Process(Order order) { bool isValid = _validator.Validate(order); if (isValid) { _collector.Collect(order); _orderShipper.Ship(order); var shippingMessage = new ShippedToCustomerMessage { CutomerId = order.CustomerId, OrderId = order.Id, Content = string.Format("Shipped order {0} to Customer {1}", order.Id, order.CustomerId) }; var orderMessage = new OrderValidatedForCustomerMessage { CutomerId = order.CustomerId, OrderId = order.Id, Content = string.Format("Validated order {0} for Customer {1}", order.Id, order.CustomerId) }; _messageDispatcher.Handle(shippingMessage); _messageDispatcher.Handle(orderMessage); } return(CreateStatus(isValid)); }