private State Apply(State state, ReservationMade @event) { state.Id = @event.Id; state.HotelId = @event.HotelId; state.RoomType = @event.RoomType; state.IsReserved = true; return(state); }
private State Apply(State state, ReservationMade @event) { state.Id = @event.Id; state.HotelId = @event.HotelId; state.RoomType = @event.RoomType; state.IsReserved = true; //virtual-workshop ex-7 hint return(state); }
//virtual workshop ex-8 hint private async Task OnReservationMade(IDenormalizerContext <RoomTypeAvailabilityReadModel> ctx, ReservationMade @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()); } }
private async Task OnReservationMade(IDenormalizerContext <RoomTemperatureViewsReadModel> ctx, ReservationMade @event) { }
//virtual workshop ex-8 hint private async Task OnReservationMade(IDenormalizerContext <ReservationsReadModel> ctx, ReservationMade @event) { var reservation = new ReservationsReadModel { Id = @event.Id, HotelId = @event.HotelId, RoomType = @event.RoomType, IsReserved = true }; await ctx.Repository.Save(reservation, new CancellationToken()); }
private async Task OnReservationMade(IDenormalizerContext <RoomViewsReadModel> ctx, ReservationMade @event) { var view = await ctx.Repository.GetByIds(@event.HotelId, @event.ViewId, CancellationToken.None); view.HotelId = @event.HotelId; view.ViewId = @event.ViewId; view.ReserveDateTime = @event.Timestamp; await ctx.Repository.Save(view, new CancellationToken()); }
private async Task OnReservationMade(IDenormalizerContext <LocationWeatherReadModel> ctx, ReservationMade @event) { }
private async Task OnReservationMade(IDenormalizerContext <HotelsReadModel> ctx, ReservationMade @event) { }
private async Task OnReservationMade(IDenormalizerContext <RoomTemperatureViewsReadModel> ctx, ReservationMade @event) { var view = await ctx.Repository.GetByIds(@event.HotelId, @event.ViewId, CancellationToken.None); view.ReservationDateTime = @event.Timestamp; view.MillisecondsToReservation = (@event.Timestamp - view.ViewDateTime).TotalMilliseconds; await ctx.Repository.Save(view, new CancellationToken()); }