public async Task Handle(CancelTicketsRequest message, IMessageHandlerContext context) { Log.Info($"Tickets for Trip Id {message.TripId} are canceled"); var result = new TicketsPurchaseResponse { TripId = message.TripId, IsBooked = false }; await context.Publish(result); }
public async Task Handle(TicketsPurchaseResponse message, IMessageHandlerContext context) { if (message.IsBooked) { Data.OrderStatuses[OrderType.FlichtTickets] = OrderStatus.Confirmed; Log.Info($"Tickets are purchased for Tour Id {message.TripId} is confirmed"); } else { Log.Info($"Tickets are canceled for Tour Id {message.TripId}"); Data.OrderStatuses[OrderType.FlichtTickets] = OrderStatus.Canceled; await CancelSaga(context); } await TryCompleteSaga(); }
public async Task Handle(TicketsPurchaseRequest message, IMessageHandlerContext context) { var result = new TicketsPurchaseResponse { TripId = message.TripId }; try { Log.Info($"Tickets for Trip Id {message.TripId} are purchased"); result.IsBooked = true; throw new OperationCanceledException("External service declined your request"); } catch (Exception e) { Log.Error($"Purchasing tickets for Trip Id {message.TripId} is failed", e); result.IsBooked = false; } await context.Publish(result); }