public Task DispatchAsync(IHubMessage hubMessage)
        {
            if (hubMessage == null)
            {
                throw new ArgumentNullException(nameof(hubMessage));
            }

            return(_kafkaDispatcher.DispatchAsync(_jsonSerializer.Serialize(hubMessage), _topic));
        }
예제 #2
0
        public Task DispatchAsync(IHubMessage hubMessage)
        {
            if (hubMessage == null)
            {
                throw new ArgumentNullException(nameof(hubMessage));
            }

            return(_kafkaDispatcher.DispatchAsync(_messageEnvelopeFactory.CreateFrom(hubMessage), _topic));
        }
예제 #3
0
        public MessageEnvelope CreateFrom(IHubMessage hubMessage)
        {
            if (hubMessage is null)
            {
                throw new ArgumentNullException(nameof(hubMessage));
            }

            var requestType             = ExtractMessageTypeNameFrom(hubMessage);
            var serializedActionRequest = _jsonSerializer.Serialize <object>(hubMessage);

            return(new MessageEnvelope(serializedActionRequest, requestType));
        }
예제 #4
0
        private static string ExtractMessageTypeNameFrom(IHubMessage hubMessage)
        {
            var messageTypeName
                = Attribute.GetCustomAttributes(hubMessage.GetType())
                  .OfType <HubMessageAttribute>()
                  .Single()
                  .Name;

            if (string.IsNullOrEmpty(messageTypeName))
            {
                throw new MessageQueueException($"Could not read request type name from attribute {nameof(HubMessageAttribute)}.");
            }

            return(messageTypeName);
        }
 public Task DispatchAsync(IHubMessage hubMessage)
 {
     return(Task.CompletedTask);
 }