45 lines
No EOL
1.2 KiB
C#
45 lines
No EOL
1.2 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using RabbitMQ.Client;
|
|
|
|
namespace BMA.EHR.Infrastructure.MessageQueue
|
|
{
|
|
public class RabbitMQConnection
|
|
{
|
|
private readonly IConnection _connection;
|
|
private readonly IModel _channel;
|
|
|
|
private readonly IConfiguration _configuration;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="configuration"></param>
|
|
public RabbitMQConnection(IConfiguration configuration)
|
|
{
|
|
_configuration = configuration;
|
|
var hostName = _configuration["RabbitMQ:URL"];
|
|
var userName = _configuration["RabbitMQ:UserName"];
|
|
var password = _configuration["RabbitMQ:Password"];
|
|
|
|
|
|
var factory = new ConnectionFactory() { HostName = hostName, UserName = userName, Password = password };
|
|
_connection = factory.CreateConnection();
|
|
_channel = _connection.CreateModel();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public IModel GetChannel() => _channel;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void Dispose()
|
|
{
|
|
_channel?.Close();
|
|
_connection?.Close();
|
|
}
|
|
}
|
|
} |