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); }
public Task Handle(RentCarEvent message, IMessageHandlerContext context) { if (message.IsBooked) { Data.OrderStatuses[OrderType.Car] = OrderStatus.Confirmed; Log.Info($"Car is rented for Tour Id {message.TripId}"); } else { Log.Info($"Car is canceled for Tour Id {message.TripId}"); Data.OrderStatuses[OrderType.Car] = OrderStatus.Canceled; } TryCompleteSaga(); return(Task.CompletedTask); }
public async Task Handle(BookHotelEvent message, IMessageHandlerContext context) { if (!message.IsBooked) { return; } var result = new RentCarEvent { TripId = message.TripId }; try { Log.Info($"Car for Trip Id {message.TripId} is rent"); result.IsBooked = true; } catch (Exception e) { Log.Info($"Booking car for Trip Id {message.TripId} is failed", e); result.IsBooked = false; } await context.Publish(result); }