/// <summary>
        /// Tries to deserialize the incoming <paramref name="messageBody"/> to a message instance.
        /// </summary>
        /// <param name="messageBody">The incoming message body.</param>
        /// <returns>
        ///     A message result that either represents a successful or faulted deserialization result.
        /// </returns>
        public Task <MessageResult> DeserializeMessageAsync(string messageBody)
        {
            _logger.LogTrace("Start deserializing to an 'Order'...");
            var order = JsonConvert.DeserializeObject <Order>(messageBody);

            if (order is null)
            {
                _logger.LogError("Cannot deserialize incoming message to an 'Order', so can't use 'Order'");
                return(Task.FromResult(MessageResult.Failure("Cannot deserialize incoming message to an 'Order', so can't use 'Order'")));
            }

            _logger.LogInformation("Deserialized to an 'Order', using 'Order'");
            return(Task.FromResult(MessageResult.Success(new OrderBatch {
                Orders = new [] { order }
            })));
        }