public void Handle(ReservationRejected message) { if (this.State == SagaState.AwaitingReservationConfirmation) { this.State = SagaState.Completed; this.AddCommand(new RejectOrder { OrderId = this.OrderId }); } else { throw new InvalidOperationException(); } }
public when_reservation_is_rejected() { var makeReservationCommand = sut.Commands.Select(e => e.Body).OfType <MakeSeatReservation>().Single(); this.reservationId = makeReservationCommand.ReservationId; var reservationAccepted = new ReservationRejected { ReservationId = this.reservationId, ConferenceId = this.conferenceId, }; sut.Handle(reservationAccepted); }
public void Handle(ReservationRejected @event) { var repo = this.repositoryFactory.Invoke(); using (repo as IDisposable) { lock (lockObject) { var saga = repo.Find <RegistrationProcessSaga>(@event.ReservationId); saga.Handle(@event); repo.Save(saga); } } }
public void Handle(ReservationRejected @event) { var repo = this.repositoryFactory.Invoke(); using (repo as IDisposable) { lock (lockObject) { var saga = repo.Query <RegistrationProcessSaga>().FirstOrDefault(x => x.ReservationId == @event.ReservationId); if (saga != null) { saga.Handle(@event); repo.Save(saga); } } } }