using StandManager.Domain.Entita; using StandManager.Service.Interfaces; namespace StandManager.Service.Resolver; public class MailProcessorResolver : IMailProcessorResolver { private readonly Dictionary _processors; public MailProcessorResolver(IEnumerable processors) { _processors = processors.ToDictionary(p => p.MailFrom); } public IMailProcessor Resolve(MailFrom mailFrom) { if (!_processors.TryGetValue(mailFrom, out var processor)) throw new NotSupportedException($"MailFrom {mailFrom} non supportato"); return processor; } }