public void ProcessMessage(IProcessHandlerContext <AcceptOrderProcessCommand> context) { if (context.Stream.IsEmpty) { return; } context.Stream.AddEvent(ChangeStatus("Order Accepted")); var command = new CreateOrderCommand { OrderNumber = _initialized.OrderNumber, OrderDate = _initialized.DateRegistered, CustomerName = _customerAssigned.CustomerName, CustomerEMail = _customerAssigned.CustomerEMail }; foreach (var itemAdded in _items) { command.Items.Add(new MessageOrderItem { Description = itemAdded.Description, Price = itemAdded.Price }); } context.Send(command); context.Publish(new OrderProcessAcceptedEvent { OrderProcessId = CorrelationId }); }
public void ProcessMessage(IProcessHandlerContext <RegisterOrderProcessCommand> context) { var message = context.Message; context.Stream.AddEvent(Initialize()); context.Stream.AddEvent(AssignCustomer(message.CustomerName, message.CustomerEMail)); context.Stream.AddEvent(AssignTargetSystem(message.TargetSystem, message.TargetSystemUri)); context.Stream.AddEvent(ChangeStatus("Cooling Off")); foreach (var quotedProduct in message.QuotedProducts) { context.Stream.AddEvent( AddItem(quotedProduct.ProductId, quotedProduct.Description, quotedProduct.Price)); } context.Publish(new OrderProcessRegisteredEvent { OrderProcessId = CorrelationId, QuotedProducts = message.QuotedProducts, CustomerName = message.CustomerName, CustomerEMail = message.CustomerEMail, OrderNumber = _initialized.OrderNumber, OrderDate = _initialized.DateRegistered, OrderTotal = Total, Status = _statusChanged.Status, StatusDate = _statusChanged.StatusDate, TargetSystem = message.TargetSystem, TargetSystemUri = message.TargetSystemUri }); context.Send(new AcceptOrderProcessCommand { OrderProcessId = CorrelationId }, c => c.Defer(DateTime.Now.AddSeconds(10)).Local().WithCorrelationId(CorrelationId.ToString("N"))); }
public void ProcessMessage(IProcessHandlerContext <CompleteOrderProcessCommand> context) { context.Stream.AddEvent(ChangeStatus("Completed")); context.Publish(new OrderProcessCompletedEvent { OrderProcessId = CorrelationId }); }
public void ProcessMessage(IProcessHandlerContext <ArchiveOrderProcessCommand> context) { if (!CanArchive) { context.Publish(new ArchiveOrderProcessRejectedEvent { OrderProcessId = context.Message.OrderProcessId, Status = Status }); return; } context.Stream.AddEvent(ChangeStatus("Order Archived")); context.Publish(new OrderProcessArchivedEvent { OrderProcessId = context.Message.OrderProcessId }); }
public void ProcessMessage(IProcessHandlerContext <CancelOrderProcessCommand> context) { if (!CanCancel) { context.Publish(new CancelOrderProcessRejectedEvent { OrderProcessId = context.Message.OrderProcessId, Status = Status }); return; } context.Stream.Remove(); context.Publish(new OrderProcessCancelledEvent { OrderProcessId = context.Message.OrderProcessId }); }