mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-22 22:25:28 +01:00
40 lines
1.5 KiB
C#
40 lines
1.5 KiB
C#
using System.Threading.Tasks;
|
|
using BTCPayServer.HostedServices;
|
|
using BTCPayServer.Logging;
|
|
using BTCPayServer.Services.Stores;
|
|
|
|
namespace BTCPayServer.Services.Mails
|
|
{
|
|
public class EmailSenderFactory
|
|
{
|
|
public ISettingsAccessor<PoliciesSettings> PoliciesSettings { get; }
|
|
public Logs Logs { get; }
|
|
|
|
private readonly IBackgroundJobClient _jobClient;
|
|
private readonly SettingsRepository _settingsRepository;
|
|
private readonly StoreRepository _storeRepository;
|
|
|
|
public EmailSenderFactory(IBackgroundJobClient jobClient,
|
|
SettingsRepository settingsSettingsRepository,
|
|
ISettingsAccessor<PoliciesSettings> policiesSettings,
|
|
StoreRepository storeRepository,
|
|
Logs logs)
|
|
{
|
|
Logs = logs;
|
|
_jobClient = jobClient;
|
|
_settingsRepository = settingsSettingsRepository;
|
|
PoliciesSettings = policiesSettings;
|
|
_storeRepository = storeRepository;
|
|
}
|
|
|
|
public Task<IEmailSender> GetEmailSender(string storeId = null)
|
|
{
|
|
var serverSender = new ServerEmailSender(_settingsRepository, _jobClient, Logs);
|
|
if (string.IsNullOrEmpty(storeId))
|
|
return Task.FromResult<IEmailSender>(serverSender);
|
|
return Task.FromResult<IEmailSender>(new StoreEmailSender(_storeRepository,
|
|
!PoliciesSettings.Settings.DisableStoresToUseServerEmailSettings ? serverSender : null, _jobClient,
|
|
storeId, Logs));
|
|
}
|
|
}
|
|
}
|