btcpayserver/BTCPayServer/Services/Mails/EmailSenderFactory.cs

41 lines
1.5 KiB
C#
Raw Normal View History

using System.Threading.Tasks;
using BTCPayServer.HostedServices;
2021-11-22 17:16:08 +09:00
using BTCPayServer.Logging;
2019-01-06 15:53:37 +01:00
using BTCPayServer.Services.Stores;
namespace BTCPayServer.Services.Mails
{
public class EmailSenderFactory
{
public ISettingsAccessor<PoliciesSettings> PoliciesSettings { get; }
2021-11-22 17:16:08 +09:00
public Logs Logs { get; }
private readonly IBackgroundJobClient _jobClient;
private readonly SettingsRepository _settingsRepository;
private readonly StoreRepository _storeRepository;
2019-01-06 15:53:37 +01:00
public EmailSenderFactory(IBackgroundJobClient jobClient,
SettingsRepository settingsSettingsRepository,
ISettingsAccessor<PoliciesSettings> policiesSettings,
2021-11-22 17:16:08 +09:00
StoreRepository storeRepository,
Logs logs)
2019-01-06 15:53:37 +01:00
{
2021-11-22 17:16:08 +09:00
Logs = logs;
_jobClient = jobClient;
_settingsRepository = settingsSettingsRepository;
PoliciesSettings = policiesSettings;
_storeRepository = storeRepository;
2019-01-06 15:53:37 +01:00
}
public Task<IEmailSender> GetEmailSender(string storeId = null)
2019-01-06 15:53:37 +01:00
{
2021-11-22 17:16:08 +09:00
var serverSender = new ServerEmailSender(_settingsRepository, _jobClient, Logs);
2019-01-06 15:53:37 +01:00
if (string.IsNullOrEmpty(storeId))
return Task.FromResult<IEmailSender>(serverSender);
return Task.FromResult<IEmailSender>(new StoreEmailSender(_storeRepository,
!PoliciesSettings.Settings.DisableStoresToUseServerEmailSettings ? serverSender : null, _jobClient,
storeId, Logs));
2019-01-06 15:53:37 +01:00
}
}
}