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();
     }
 }
Exemple #2
0
        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);
                    }
                }
            }
        }