Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 private void StatusChanged(UpdateWorkOrderStatusEvent updateWorkOrderStatusEvent)
 {
     Status = updateWorkOrderStatusEvent.Status;
 }