コード例 #1
0
 private State Apply(State state, ReservationCanceled @event)
 {
     state.Id         = @event.Id;
     state.HotelId    = @event.HotelId;
     state.RoomType   = @event.RoomType;
     state.IsReserved = false;
     return(state);
 }
コード例 #2
0
        public void Handle(ReservationCanceled theEvent)
        {
            Console.WriteLine("reservation canceled for id {0} at {1} because of {2}", theEvent.ReservationId.ToString(), theEvent.CancellationDate.ToString(), theEvent.Reason);

            var repo = new ReservationRepository();

            repo.CancelReservation(theEvent.ReservationId,
                                   theEvent.CancellationDate,
                                   theEvent.Reason);
        }
コード例 #3
0
        private async Task OnReservationCanceled(IDenormalizerContext <ReservationsReadModel> ctx, ReservationCanceled @event)
        {
            var reservation = await ctx.Repository.Read(new { @event.Id }, new CancellationToken());

            if (reservation != null)
            {
                reservation.IsReserved = false;
                await ctx.Repository.Save(reservation, new CancellationToken());
            }
        }
コード例 #4
0
        private async Task OnReservationCanceled(IDenormalizerContext <RoomTypeAvailabilityReadModel> ctx, ReservationCanceled @event)
        {
            var roomTypeAvailability = await ctx.Repository.Read(new { @event.HotelId, @event.RoomType }, new CancellationToken());

            if (roomTypeAvailability != null)
            {
                roomTypeAvailability.Amount += 1;
                await ctx.Repository.Save(roomTypeAvailability, new CancellationToken());
            }
        }