hrms-api-backend/BMA.EHR.Infrastructure/MessageQueue/RabbitMQProducer.cs
Suphonchai Phoonsawat 89ef146c19 fix: Change Code
2024-07-06 12:30:37 +07:00

69 lines
No EOL
2.1 KiB
C#

using System.Text;
using Newtonsoft.Json;
namespace BMA.EHR.Infrastructure.MessageQueue
{
public class RabbitMQProducer
{
private readonly RabbitMQConnection _connection;
private const string INSIGNIA_QUEUE = "bma_insignia_request";
/// <summary>
///
/// </summary>
/// <param name="connection"></param>
public RabbitMQProducer(RabbitMQConnection connection)
{
_connection = connection;
}
/// <summary>
///
/// </summary>
/// <param name="message"></param>
public void SendMessage(string message)
{
var channel = _connection.GetChannel();
channel.QueueDeclare(queue: "myqueue",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "myqueue",
mandatory: false,
basicProperties: null,
body: body);
}
public void CalculateInsignia(Guid periodId)
{
var channel = _connection.GetChannel();
channel.QueueDeclare(queue: INSIGNIA_QUEUE,
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
// var req = new InsigniaRequestPeriod
// {
// PeriodId = periodId
// };
// var serializedObject = JsonConvert.SerializeObject(req);
var body = Encoding.UTF8.GetBytes(periodId.ToString("D"));
channel.BasicPublish(exchange: "",
routingKey: INSIGNIA_QUEUE,
mandatory: false,
basicProperties: null,
body: body);
}
}
}