using MailKit.Search; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using PARR.AIHIT.Settings; using PARR.DAL.Services.Interfaces; using PARR.Mail.Services; namespace PARR.AIHIT { internal class Syncher : ISyncher { private readonly ILogger logger; private readonly IMailService mailService; private readonly SyncherSettings syncherSettings; private readonly IHostService hostService; public Syncher(ILogger logger, IMailService mailService, SyncherSettings syncherSettings, IHostService hostService) { this.hostService = hostService; this.logger = logger; this.mailService = mailService; this.syncherSettings = syncherSettings; } public async Task InvokeAsync() { var hosts = await hostService.Get().ToListAsync(); var messages = await mailService.CheckMailAsync(SearchQuery.NotSeen); if (!messages.Any()) { return; } //var includeAddresses = aIHITSyncherSettings.IncludeAddresses.Any() ? aIHITSyncherSettings.IncludeAddresses.Split(",") : null; // var filtered = messages.Where(m => includeAddresses.Any(i => m.Envelope.From.Mailboxes.First().Address == i)).ToList(); var filtered = messages.Where(m => syncherSettings.IncludeAddressesArray.Any(i => m.Envelope.From.Mailboxes.First().Address == i)).ToList(); foreach (var message in filtered) { // } } } }