Primeiramente, parabéns pelo projeto!
Gostaria de propor uma idéia de desacoplamento para o envio de notificações, a idéia é simples e poderia avançar para soluções empresariais(RabbitMQ, MSMQ, MQTT) no futuro, mas de inicio acho que poderia ser utilizado algo como System.Threading.Channel para enviar notificações, sejam por e-mail ou sms, por exemplo.
private static async Task AlertIfDiscountWasRecheadAsync(Product product)
{
if (!product.DiscountWasReached())
{
return;
}
Console.WriteLine("Enviando alerta de desconto por e-mail.");
await SendMailAsync("leonardo@growiz.com.br",
$"Relatório do produto: { product.Name }",
"Segue em anexo relatório do produto.",
ProductReportFileName);
}
Tutorial de System.Threading.Channels
Para o código acima ficaria algo como:
private static async Task AlertIfDiscountWasRecheadAsync(Product product)
{
if (!product.DiscountWasReached())
{
return;
}
Console.WriteLine("Enviando alerta de desconto por e-mail.");
await NotificationDispatcher.NotifyAsync(
new NotificationItem
{
Email = "leonardo@growiz.com.br",
Subject = $"Relatório do produto: { product.Name }",
MessagePayload = "Segue em anexo relatório do produto.",
PhoneNumber = "+5511999999999",
Attachment = ProductReportFileName
}, Notifier.Sms | Notifier.Email | Notifier.WhatsApp);
}
A implementação dessa classe estática seria algo como descrito no video de tutoria.
Esta idéia/proposta é mais para incrementar o seu curso :)
Abraço!
Primeiramente, parabéns pelo projeto!
Gostaria de propor uma idéia de desacoplamento para o envio de notificações, a idéia é simples e poderia avançar para soluções empresariais(RabbitMQ, MSMQ, MQTT) no futuro, mas de inicio acho que poderia ser utilizado algo como
System.Threading.Channelpara enviar notificações, sejam por e-mail ou sms, por exemplo.Tutorial de System.Threading.Channels
Para o código acima ficaria algo como:
A implementação dessa classe estática seria algo como descrito no video de tutoria.
Esta idéia/proposta é mais para incrementar o seu curso :)
Abraço!