public bool Publish(TransportMessage message, IEnumerable<Type> eventTypes)
        {
            var eventData = message.ToEventEventData(eventTypes);

            if (eventSourcedUnitOfWork.IsInitialized)
            {
                eventSourcedUnitOfWork.Publish(eventData);
            }
            else if (Transaction.Current != null)
            {
                transactionalUnitOfWork.Send(eventData);
            }
            else
            {
                connectionManager.GetConnection().AppendToStream(EndpointAddress.GetFinalOutgoingQueue(), ExpectedVersion.Any, eventData);
            }
            return true;
        }
        public bool Publish(TransportMessage message, IEnumerable <Type> eventTypes)
        {
            var eventData = message.ToEventEventData(eventTypes);

            if (eventSourcedUnitOfWork.IsInitialized)
            {
                eventSourcedUnitOfWork.Publish(eventData);
            }
            else if (Transaction.Current != null)
            {
                transactionalUnitOfWork.Send(eventData);
            }
            else
            {
                connectionManager.GetConnection().AppendToStream(EndpointAddress.GetFinalOutgoingQueue(), ExpectedVersion.Any, eventData);
            }
            return(true);
        }