2020-12-04 08:08:05 +01:00
|
|
|
using BTCPayServer.HostedServices;
|
2019-01-06 15:53:37 +01:00
|
|
|
using BTCPayServer.Services.Stores;
|
|
|
|
|
|
|
|
namespace BTCPayServer.Services.Mails
|
|
|
|
{
|
|
|
|
public class EmailSenderFactory
|
|
|
|
{
|
2020-12-04 08:08:05 +01:00
|
|
|
private readonly IBackgroundJobClient _jobClient;
|
|
|
|
private readonly SettingsRepository _repository;
|
|
|
|
private readonly StoreRepository _storeRepository;
|
|
|
|
private readonly CssThemeManager _cssThemeManager;
|
2019-01-06 15:53:37 +01:00
|
|
|
|
|
|
|
public EmailSenderFactory(IBackgroundJobClient jobClient,
|
|
|
|
SettingsRepository repository,
|
2020-12-04 08:08:05 +01:00
|
|
|
StoreRepository storeRepository,
|
|
|
|
CssThemeManager cssThemeManager)
|
2019-01-06 15:53:37 +01:00
|
|
|
{
|
2020-12-04 08:08:05 +01:00
|
|
|
_jobClient = jobClient;
|
|
|
|
_repository = repository;
|
|
|
|
_storeRepository = storeRepository;
|
|
|
|
_cssThemeManager = cssThemeManager;
|
2019-01-06 15:53:37 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public IEmailSender GetEmailSender(string storeId = null)
|
|
|
|
{
|
2020-12-04 08:08:05 +01:00
|
|
|
var serverSender = new ServerEmailSender(_repository, _jobClient);
|
2019-01-06 15:53:37 +01:00
|
|
|
if (string.IsNullOrEmpty(storeId))
|
|
|
|
return serverSender;
|
2020-12-04 08:08:05 +01:00
|
|
|
return new StoreEmailSender(_storeRepository,
|
|
|
|
!_cssThemeManager.Policies.DisableStoresToUseServerEmailSettings ? serverSender : null, _jobClient,
|
|
|
|
storeId);
|
2019-01-06 15:53:37 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|