public Task Handle(ShipWithFanCourierResponse message, IMessageHandlerContext context) { if (!message.PackageShipped) { ShipWithUrgentCargus(context); } else { if (Data.Status == ShippingStatus.ShippingWithFanCourier) { context.Publish <IOrderShipped>(m => { m.OrderId = Data.OrderId; }); MarkAsComplete(); Log.Info($"Done shipping Order with Id {Data.OrderId}."); } else { Log.Info( "Uh-oh. We received the response too late. " + $"Cancel Fan Courier shipping command for Order with Id {Data.OrderId} has already been sent."); } } return(Task.CompletedTask); }
public Task Handle(ShipWithFanCourierResponse message, IMessageHandlerContext context) { if (!message.PackageShipped) { if (!Data.CouldNotShip) { Log.Info($"Couldn't ship Batch {message.CorrelationId} from Order {Data.OrderId}. Compensating..."); Compensate(context); Data.CouldNotShip = true; } return(Task.CompletedTask); } Log.Info($"Done shipping Batch {message.CorrelationId} from Order {Data.OrderId}."); Data.BatchStatuses[message.CorrelationId] = true; if (Data.BatchStatuses.Values.All(v => v)) { Log.Info($"Done shipping Order with Id {Data.OrderId}."); context.Publish <IOrderShipped>(m => { m.OrderId = Data.OrderId; }); MarkAsComplete(); } return(Task.CompletedTask); }