mirror of
https://github.com/cyanfish/naps2.git
synced 2024-09-21 12:49:43 +03:00
b62100fb07
No longer keeping System, System.Collections.Generic, System.Linq
42 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|