using Autofac; using NAPS2.ImportExport.Email; using NAPS2.ImportExport.Email.Mapi; using NAPS2.ImportExport.Email.Oauth; namespace NAPS2; internal class AutofacEmailProviderFactory : IEmailProviderFactory { private readonly IComponentContext _container; public AutofacEmailProviderFactory(IComponentContext container) { _container = container; } public IEmailProvider Create(EmailProviderType type) { switch (type) { case EmailProviderType.Gmail: return _container.Resolve(); case EmailProviderType.OutlookWeb: return _container.Resolve(); case EmailProviderType.Thunderbird: return _container.Resolve(); case EmailProviderType.AppleMail: return _container.Resolve(); default: return _container.Resolve(); } } public IEmailProvider Default { get { var config = _container.Resolve(); var providerType = config.Get(c => c.EmailSetup.ProviderType); return Create(providerType); } } }