Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
        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);
        }