| 1234567891011121314151617181920212223242526272829303132333435 | 
							- using Microsoft.Extensions.Configuration;
 
- using Microsoft.Extensions.Logging;
 
- using NATS.Client;
 
- using Vote.Messaging.Messages;
 
- namespace Vote.Messaging
 
- {
 
-     public class MessageQueue : IMessageQueue
 
-     {
 
-         protected readonly IConfiguration _configuration;
 
-         protected readonly ILogger _logger;
 
-         public MessageQueue(IConfiguration configuration, ILogger<MessageQueue> logger)
 
-         {
 
-             _configuration = configuration;
 
-             _logger = logger;
 
-         }
 
-         public void Publish<TMessage>(TMessage message)
 
-             where TMessage : Message
 
-         {
 
-             using (var connection = CreateConnection())
 
-             {
 
-                 var data = MessageHelper.ToData(message);
 
-                 connection.Publish(message.Subject, data);
 
-             }
 
-         }
 
-         public IConnection CreateConnection()
 
-         {
 
-             var url = _configuration.GetValue<string>("MessageQueue:Url");
 
-             return new ConnectionFactory().CreateConnection(url);
 
-         }
 
-     }
 
- }
 
 
  |