public void Handle(PayForOrder message) { var order = repository.GetById <Domain.Order>(message.Id); int committableVersion = message.Version; order.PayForOrder(committableVersion); repository.Save(order); }
public void Handle(OrderPriced message) { var payForOrder = new PayForOrder(message.Order) { MessageId = Guid.NewGuid(), CorrelationId = message.CorrelationId, CausationId = message.MessageId }; _bus.Publish(payForOrder); }
private void HandlePayForOrder(PayForOrder cmd) { var order = this.QueryOrder(cmd.OrderId); var orderPaid = new OrderPaid { Order = order }; // like Forward Context.ActorSelection("akka://ec/user/inventory").Tell(orderPaid, this.Sender); Context.System.EventStream.Publish(orderPaid); }
public async Task Pay(string orderId, string correlationId) { var state = new Domain.Model.Payment.Payment(StreamNumbering.NewStreamId <Domain.Model.Payment.Payment>()); var order = await this.persistence.GetState <DomainOrder>(orderId); var payed = new PayForOrder(correlationId, DateTime.Now) { OrderStreamId = order.StreamId, Total = order.TotalCost, Description = order.Items.Aggregate((acc, x) => acc + ',' + x) }.Execute(state); await this.persistence.Save(payed); var _ = myPay.SendPaymentRequest(payed.StreamId, payed.Total, payed.Description).ConfigureAwait(false); }
public void Handle(OrderPriced message) { if (_expectedNextCausationId == message.CausationId) { var payForOrder = new PayForOrder(message.Order) { MessageId = Guid.NewGuid(), CorrelationId = message.CorrelationId, CausationId = message.MessageId }; _expectedNextCausationId = payForOrder.MessageId; _bus.Publish(payForOrder); } else { Console.WriteLine("Received Evil Message: Order Priced {0}", message.Order.Id); } }
public async Task HandleAsync(PayForOrder command) { await ExecuteAsync(command.OrderId, order => order.Pay()); }