internal Task Process(
            Envelope envelope,
            IDictionary <string, object> properties,
            CancellationToken cancellationToken)
        {
            if (_messageHandler.Accepts(envelope))
            {
                var context = new EventContext(envelope, properties);
                return(ProcessAcceptedEvent(context, cancellationToken));
            }

            return(Task.CompletedTask);
        }