Пример #1
0
 public async Task Handle(RentCarEvent message, IMessageHandlerContext context)
 {
     if (message.IsBooked)
     {
         return;
     }
     Log.Info($"Hotel for Trip Id {message.TripId} is canceled");
     var result = new BookHotelEvent {
         TripId = message.TripId, IsBooked = false
     };
     await context.Publish(result);
 }
Пример #2
0
        public Task Handle(BookHotelEvent message, IMessageHandlerContext context)
        {
            if (message.IsBooked)
            {
                Data.OrderStatuses[OrderType.Hotel] = OrderStatus.Confirmed;
                Log.Info($"Hotel booking confirmation received for Tour Id {message.TripId}");
            }
            else
            {
                Log.Info($"Hotel is canceled for Tour Id {message.TripId}");
                Data.OrderStatuses[OrderType.Hotel] = OrderStatus.Canceled;
            }

            TryCompleteSaga();
            return(Task.CompletedTask);
        }
Пример #3
0
        public async Task Handle(NewOrderEvent message, IMessageHandlerContext context)
        {
            var result = new BookHotelEvent {
                TripId = message.TripId
            };

            try
            {
                Log.Info($"Hotel for Trip Id {message.TripId} is booked");
                result.IsBooked = true;
            }
            catch (Exception e)
            {
                Log.Error($"Hotel booking failed for Trip Id {message.TripId}", e);
                result.IsBooked = false;
            }

            await context.Publish(result);
        }