public WorkOrder Handle(UpdateWorkOrderStatusMessage message) { var updateWorkOrderEvent = new UpdateWorkOrderStatusEvent(message.Id, message.Status); var events = _eventStore.AddEvent <WorkOrderEvents>(message.Id, updateWorkOrderEvent); var workOrder = new WorkOrder(message.Id, events); if (message.Status == WorkOrderStatus.Canceled) { foreach (var workOrderItem in workOrder.Items) { events = _eventStore.AddEvent <WorkOrderEvents>(message.Id, new UpdateWorkOrderItemStatusEvent(message.Id, workOrderItem.Id, WorkItemStatus.Canceled)); } } workOrder = new WorkOrder(message.Id, events); //this is an over simplification of sending a message _eventPublisher.Publish(message); return(workOrder); }
private void StatusChanged(UpdateWorkOrderStatusEvent updateWorkOrderStatusEvent) { Status = updateWorkOrderStatusEvent.Status; }