Как отправить письмо пользователю с очереди RabbitMQ?
Есть АПИ и СМПТ сервис, после покупки товара - пользователю должно прийти на почту письмо что он заказал. После того как пользователь подтверждает заказ:
[HttpPost]
public async Task<IActionResult> Add(OrderCreateModel orderModel)
{
var orderAdd = _mapper.Map<OrderDto>(orderModel);
var orderCreated = await _orderService.AddAsync(orderAdd);
_messageService.Enqueue(orderCreated);
return CreatedAtAction(nameof(GetId), new { id = orderCreated.Id }, orderModel);
}
Происходит отправка этого объекта в очередь в RabbiMQ И потом, уже на другом сервисе СМТП:
var consumer = new EventingBasicConsumer(model);
consumer.Received += (sender, e) =>
{
var body = Deserialize<Mail>(e.Body.ToArray());
mailService.SendMessageAsync(body).Wait();
};
model.BasicConsume("order", true, consumer);
Как мне этот объект Order, закинуть в Mail?
public class Mail
{
public string Email { get; set; } = "[email protected]";
public string Subject { get; set; } = "Greetings!";
public string Body { get; set; } = "Greetings!";
}