33 lines
1.0 KiB
C#
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;
|
|
}
|
|
} |