/// <summary>
        /// Initialize a received item with all Sql Transactional Outbox data.  The resulting item will
        ///     allow for specific handling of the Message Acknowledgement/Rejection/Dead-lettering just as.
        ///     the ProcessMessageEventArgs allow...
        /// </summary>
        /// <param name="messageEventArgs"></param>
        /// <param name="outboxItemFactory"></param>
        public AzureServiceBusReceivedItem(
            ProcessMessageEventArgs messageEventArgs,
            ISqlTransactionalOutboxItemFactory <TUniqueIdentifier, TPayloadBody> outboxItemFactory
            )
        {
            this.MessageEventArgs       = messageEventArgs.AssertNotNull(nameof(messageEventArgs));
            this.AzureServiceBusMessage = messageEventArgs.Message;
            this.OutboxItemFactory      = outboxItemFactory.AssertNotNull(nameof(outboxItemFactory));

            this.InitAzureServiceBusOutboxReceivedItem(isFifoProcessingEnabled: false);
        }