bool LogVolley(HttpContext httpContext, int statusCode, double elapsedMs)
        {
            //TODO: Consider a kill switch for logging here

            var message = VolleyballMessageFactory.Create(httpContext.Response.ContentType, httpContext.Request.Method,
                                                          GetPath(httpContext), statusCode, elapsedMs);

            //TODO: Use a factory here
            IVolleyballQueue queue = new RabbitMQVolleyBallQueue();

            queue.Publish(message);

            return(false);
        }
        protected override Task ExecuteAsync(CancellationToken stoppingToken)
        {
            stoppingToken.ThrowIfCancellationRequested();

            var queue = new RabbitMQVolleyBallQueue();

            queue.ReceivedVolley    += HandleMessage;
            queue.Shutdown          += OnConsumerShutdown;
            queue.Registered        += OnConsumerRegistered;
            queue.Unregistered      += OnConsumerUnregistered;
            queue.ConsumerCancelled += OnConsumerConsumerCancelled;

            queue.Consume("AnyVolleyballMessage");
            return(Task.CompletedTask);
        }