public Task Handle(DeliveryRequestApprovedEvent message, IMessageHandlerContext context)
        {
            var createOrder = new CreateOrderCommand
            {
                CartId = message.CartId
            };

            return(context.SendLocal(createOrder));
        }
        public Task Handle(SendDeliveryRequestCommand message, IMessageHandlerContext context)
        {
            //TODO: acual delivery logic goes here

            //randomly return negative events
            if (random.Next(0, 5) == 0)
            {
                var deliveryRequestRefused = new DeliveryRequestRefusedEvent
                {
                    CartId = message.CartId
                };
                return(context.Publish(deliveryRequestRefused));
            }

            var deliveryRequestApproved = new DeliveryRequestApprovedEvent
            {
                CartId = message.CartId
            };

            return(context.Publish(deliveryRequestApproved));
        }