public async Task Handle(CreateOrderShipping message, IMessageHandlerContext context)
        {
            var customerNumber = new Guid("f64bb7b3-fb1c-486e-b745-8062bf30e4d3");

            Console.WriteLine("Handling message CreateOrderShipping orderId: {0} OrderNumber: {1}", message.OrderId,
                              message.OrderNumber);

            Data.OrderId        = message.OrderId;
            Data.CountryCode    = message.OrderCountryCode;
            Data.CustomerNumber = customerNumber;
            Data.ThrowException = message.ThrowException;

            // do some shipping related logic
            var dispatchOrderToDhl = new DispatchOrderToDhl
            {
                CountryCode       = message.OrderCountryCode,
                OrderId           = message.OrderId,
                DhlCustomerNumber = customerNumber,
                DispatchId        = Guid.NewGuid(),
                ThrowException    = message.ThrowException
            };

            //Dispatch the order to DHL
            await context.Send(dispatchOrderToDhl)
            .ConfigureAwait(false);
        }
Ejemplo n.º 2
0
        public Task Timeout(FedexAndDhlFailed state, IMessageHandlerContext context)
        {
            Console.WriteLine("Timeout for message FedexAndDhlFailed orderId: {0} OrderNumber: {1}", Data.OrderId,
                              Data.OrderNumber);

            if (Data.FedexFailed && Data.DhlFailed)
            {
                // try again
                Data.FedexFailed = false;
                var customerNumber = new Guid("f64bb7b3-fb1c-486e-b745-8062bf30e4d3");

                // do some shipping related logic
                var dispatchOrderToDhl = new DispatchOrderToDhl
                {
                    CountryCode       = Data.CountryCode,
                    OrderId           = Data.OrderId,
                    DhlCustomerNumber = customerNumber,
                    DispatchId        = Guid.NewGuid(),
                    ThrowException    = Data.ThrowException
                };

                //Dispatch the order to DHL
                Console.WriteLine($"OrderId {Data.OrderId} resent to DHL after timeout");
                return(context.Send(dispatchOrderToDhl));
            }

            Console.WriteLine($"OrderId {Data.OrderId} done after timeout");
            return(Task.CompletedTask);
        }
Ejemplo n.º 3
0
        public void Handle(CreateOrderShipping message)
        {
            var customerNumber = new Guid("f64bb7b3-fb1c-486e-b745-8062bf30e4d3");

            Console.WriteLine("Handling message CreateOrderShipping orderId: {0} OrderNumber: {1}", message.OrderId,
                              message.OrderNumber);

            Data.OrderId = message.OrderId;

            // do some shipping related logic
            var dispatchOrderToDhl = new DispatchOrderToDhl
            {
                CountryCode       = message.OrderCountryCode,
                OrderId           = message.OrderId,
                DhlCustomerNumber = customerNumber,
                DispatchId        = Guid.NewGuid(),
                ThrowException    = message.ThrowException
            };

            //Dispatch the order to DHL
            Bus.Send(dispatchOrderToDhl);
        }