public Task PublishAsync <TMessage>(TMessage message, string recipient)
        {
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var messageType = message.GetType().Name;
            var payload     = _jsonSerializer.Serialize(message);

            var outboxMessage = new OutgoingActorMessage(_systemDateTimeProvider.Now(), messageType, payload, recipient);

            _unitOfWorkCallback.RegisterNew(outboxMessage, this);

            return(Task.CompletedTask);
        }
 public void Add(OutgoingActorMessage outgoingActorMessage)
 {
     _messages.Add(outgoingActorMessage);
 }