Beispiel #1
0
        public async Task Timeout(ShippingEscalation timeout, IMessageHandlerContext context)
        {
            if (!Data.ShipmentAcceptedByMaple)
            {
                if (!Data.ShipmentOrderSentToAlpine)
                {
                    log.Info($"Order [{Data.OrderId}] - No answer from Maple, let's try Alpine.");
                    Data.ShipmentOrderSentToAlpine = true;
                    await context.Send(new ShipWithAlpine()
                    {
                        OrderId = Data.OrderId
                    });
                    await RequestTimeout(context, TimeSpan.FromSeconds(20), new ShippingEscalation());
                }
                else if (!Data.ShipmentAcceptedByAlpine) // No response from Maple nor Alpine
                {
                    log.Warn($"Order [{Data.OrderId}] - No answer from Maple/Alpine. We need to escalate!");

                    // escalate to Warehouse Manager!
                    await context.Publish <ShipmentFailed>();

                    MarkAsComplete();
                }
            }
        }
 public async Task Timeout(ShippingEscalation timeout, IMessageHandlerContext context)
 {
     if (!Data.ShipmentAcceptedByMaple && !Data.ShipmentOrderSentToAlpine)
     {
         log.Info($"Order [{Data.OrderId}] - We didn't receive answer from Maple, let's try Alpine.");
         Data.ShipmentOrderSentToAlpine = true;
         await context.Send(new ShipWithAlpine()
         {
             OrderId = Data.OrderId
         });
         await RequestTimeout(context, TimeSpan.FromSeconds(20), new ShippingEscalation());
     }
 }