using Api.Services.EmailServices;
namespace Api.HostedBackgroundServices.EmailBackgroundService;
public class EmailBackgroundWorker(IEmailBackgroundService EmailBackgroundService, IEmailService EmailService) : BackgroundService
{
private readonly IEmailBackgroundService _EmailBackgroundService = EmailBackgroundService;
private readonly IEmailService _EmailService = EmailService;
protected override async Task ExecuteAsync(CancellationToken CancelToken)
{
while (!CancelToken.IsCancellationRequested)
{
if (await _EmailBackgroundService.GetEmailFromQueue(CancelToken).AnyAsync(CancelToken))
{
var SmtpCli = await _EmailService.CreateSmtpConnection();
Console.WriteLine("made an smtp client");
var Emails = _EmailBackgroundService.GetEmailFromQueue(CancelToken);
await foreach (var Email in Emails)
{
await _EmailService.SendEmail(Email, SmtpCli);
}
await _EmailService.DisconnectSmtp(SmtpCli);
Console.WriteLine("disconnected");
}
}
}
}
using Api.Services.EmailServices;
namespace Api.HostedBackgroundServices.EmailBackgroundService;
public class EmailBackgroundWorker(IEmailBackgroundService EmailBackgroundService, IEmailService EmailService) : BackgroundService
{
private readonly IEmailBackgroundService _EmailBackgroundService = EmailBackgroundService;
private readonly IEmailService _EmailService = EmailService;
protected override async Task ExecuteAsync(CancellationToken CancelToken)
{
while (!CancelToken.IsCancellationRequested)
{
if (await _EmailBackgroundService.GetEmailFromQueue(CancelToken).AnyAsync(CancelToken))
{
var SmtpCli = await _EmailService.CreateSmtpConnection();
Console.WriteLine("made an smtp client");
var Emails = _EmailBackgroundService.GetEmailFromQueue(CancelToken);
await foreach (var Email in Emails)
{
await _EmailService.SendEmail(Email, SmtpCli);
}
await _EmailService.DisconnectSmtp(SmtpCli);
Console.WriteLine("disconnected");
}
}
}
}