Files
StandManager/StandManager.MailProcessor/MailProcessor.cs
2026-01-20 16:47:24 +01:00

33 lines
1.0 KiB
C#

using StandManager.Domain.DTO;
using StandManager.Service.Interfaces;
using StandManager.Service.Resolver;
public class MailProcessor
{
private readonly IManagerService _managerService;
private readonly EmailConfig _config;
private readonly IMailProcessorResolver _resolver;
public MailProcessor(IManagerService managerService, EmailConfig config, IMailProcessorResolver resolver)
{
_managerService = managerService;
_config = config;
_resolver = resolver;
}
public async Task Process()
{
var list = await _managerService.MailQueueService.RicercaQueryable(x =>
x.Eliminato == false && x.Sent == false && string.IsNullOrEmpty(x.Error), solaLettura:false);
using var httpClient = new HttpClient();
foreach (var mailQueueByFrom in list.GroupBy(x => x.From))
{
var processor = _resolver.Resolve(mailQueueByFrom.Key);
await processor.ProcessAsync(mailQueueByFrom.ToList(), _config, httpClient);
}
var a = list;
}
}