22 lines
647 B
C#
22 lines
647 B
C#
using StandManager.Domain.Entita;
|
|
using StandManager.Service.Interfaces;
|
|
|
|
namespace StandManager.Service.Resolver;
|
|
|
|
public class MailProcessorResolver : IMailProcessorResolver
|
|
{
|
|
private readonly Dictionary<MailFrom, IMailProcessor> _processors;
|
|
|
|
public MailProcessorResolver(IEnumerable<IMailProcessor> 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;
|
|
}
|
|
} |