protected void ApplyEventOnSaga(DomainEvent evt) { var id = _listener.GetCorrelationId(evt); var saga = _repo.GetById <DeliverPizzaSaga2>(id); saga.Transition(evt); _repo.Save(saga, Guid.NewGuid(), null); }
public void Verify_that_saga_can_be_reloaded_and_have_no_uncommitted_events() { var orderId = new OrderId(1); var sagaId = orderId; var eventStore = _factory.BuildEventStore(_connectionString); var repo = new SagaEventStoreRepositoryEx(eventStore, new SagaFactory()); var saga = repo.GetById <DeliverPizzaSaga>(sagaId); saga.Transition(new OrderPlaced(orderId)); saga.Transition(new BillPrinted(orderId)); saga.Transition(new PaymentReceived(orderId, Guid.NewGuid())); saga.Transition(new PizzaDelivered(orderId)); repo.Save(saga, Guid.NewGuid(), null); var sagaReloaded = repo.GetById <DeliverPizzaSaga>(sagaId); Assert.That(sagaReloaded, Is.Not.Null); var uncommittedevents = ((ISagaEx)saga).GetUncommittedEvents().ToArray(); Assert.AreEqual(0, uncommittedevents.Count()); }
public void Verify_that_saga_has_correct_number_of_uncommitted_events() { var orderId = new OrderId(1); var sagaId = orderId; var eventStore = _factory.BuildEventStore(_connectionString); var repo = new SagaEventStoreRepositoryEx(eventStore, new SagaFactory()); var saga = repo.GetById <DeliverPizzaSaga>(sagaId); saga.Transition(new OrderPlaced(orderId)); saga.Transition(new BillPrinted(orderId)); saga.Transition(new PaymentReceived(orderId, Guid.NewGuid())); saga.Transition(new PizzaDelivered(orderId)); //check that uncommitted events are correctly transictioned. var events = ((ISagaEx)saga).GetUncommittedEvents().ToArray(); repo.Save(saga, Guid.NewGuid(), null); Assert.AreEqual(4, events.Count()); }