naps2/NAPS2.Lib.Common/NinjectEmailProviderFactory.cs
Ben Olden-Cooligan b62100fb07 Remove unused usings
No longer keeping System, System.Collections.Generic, System.Linq
2019-07-14 11:26:56 -04:00

42 lines
1.1 KiB
C#

using NAPS2.Config;
using NAPS2.ImportExport.Email;
using NAPS2.ImportExport.Email.Mapi;
using NAPS2.ImportExport.Email.Oauth;
using Ninject;
namespace NAPS2
{
public class NinjectEmailProviderFactory : IEmailProviderFactory
{
private readonly IKernel kernel;
public NinjectEmailProviderFactory(IKernel kernel)
{
this.kernel = kernel;
}
public IEmailProvider Create(EmailProviderType type)
{
switch (type)
{
case EmailProviderType.Gmail:
return kernel.Get<GmailEmailProvider>();
case EmailProviderType.OutlookWeb:
return kernel.Get<OutlookWebEmailProvider>();
default:
return kernel.Get<MapiEmailProvider>();
}
}
public IEmailProvider Default
{
get
{
var config = kernel.Get<ConfigProvider<CommonConfig>>();
var providerType = config.Get(c => c.EmailSetup.ProviderType);
return Create(providerType);
}
}
}
}