private void DeQueueMessage()
        {
            var result = _commandQueueService.TryDeleteMessageAsync().Result;

            if (!result.IsSuccess || string.IsNullOrWhiteSpace(result.Content))
            {
                return;
            }

            _logger.LogInformation($"de-queued message {result.Content}");

            var command = JsonConvert.DeserializeObject <ICommand>(
                result.Content,
                new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.All
            });

            _commandDispatcher.Publish(command);
        }