Browse Source

Make `BackgroundEmailSendingJobArgs ` support `IMultiTenant`

pull/19578/head
maliming 2 years ago
parent
commit
368df4216b
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 5
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs
  2. 11
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs
  3. 5
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs
  4. 4
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs
  5. 7
      framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs
  6. 4
      framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs

5
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs

@ -1,12 +1,15 @@
using System;
using System.Collections.Generic;
using Volo.Abp.Data;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing;
[Serializable]
public class BackgroundEmailSendingJobArgs
public class BackgroundEmailSendingJobArgs : IMultiTenant
{
public Guid? TenantId { get; set; }
public string? From { get; set; }
public string To { get; set; } = default!;

11
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs

@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing;
@ -17,6 +18,8 @@ public abstract class EmailSenderBase : IEmailSender
{
public ILogger<EmailSenderBase> Logger { get; set; }
protected ICurrentTenant CurrentTenant { get; }
protected IEmailSenderConfiguration Configuration { get; }
protected IBackgroundJobManager BackgroundJobManager { get; }
@ -24,10 +27,14 @@ public abstract class EmailSenderBase : IEmailSender
/// <summary>
/// Constructor.
/// </summary>
protected EmailSenderBase(IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager)
protected EmailSenderBase(
ICurrentTenant currentTenant,
IEmailSenderConfiguration configuration,
IBackgroundJobManager backgroundJobManager)
{
Logger = NullLogger<EmailSenderBase>.Instance;
CurrentTenant = currentTenant;
Configuration = configuration;
BackgroundJobManager = backgroundJobManager;
}
@ -93,6 +100,7 @@ public abstract class EmailSenderBase : IEmailSender
await BackgroundJobManager.EnqueueAsync(
new BackgroundEmailSendingJobArgs
{
TenantId = CurrentTenant.Id,
To = to,
Subject = subject,
Body = body,
@ -113,6 +121,7 @@ public abstract class EmailSenderBase : IEmailSender
await BackgroundJobManager.EnqueueAsync(
new BackgroundEmailSendingJobArgs
{
TenantId = CurrentTenant.Id,
From = from,
To = to,
Subject = subject,

5
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing;
@ -15,8 +16,8 @@ public class NullEmailSender : EmailSenderBase
/// <summary>
/// Creates a new <see cref="NullEmailSender"/> object.
/// </summary>
public NullEmailSender(IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager)
: base(configuration, backgroundJobManager)
public NullEmailSender(ICurrentTenant currentTenant, IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager)
: base(currentTenant, configuration, backgroundJobManager)
{
}

4
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing.Smtp;
@ -19,9 +20,10 @@ public class SmtpEmailSender : EmailSenderBase, ISmtpEmailSender, ITransientDepe
/// Creates a new <see cref="SmtpEmailSender"/>.
/// </summary>
public SmtpEmailSender(
ICurrentTenant currentTenant,
ISmtpEmailSenderConfiguration smtpConfiguration,
IBackgroundJobManager backgroundJobManager)
: base(smtpConfiguration, backgroundJobManager)
: base(currentTenant, smtpConfiguration, backgroundJobManager)
{
SmtpConfiguration = smtpConfiguration;
}

7
framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs

@ -9,6 +9,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using MimeKit;
using MimeKit.Utils;
using Volo.Abp.MultiTenancy;
using SmtpClient = MailKit.Net.Smtp.SmtpClient;
namespace Volo.Abp.MailKit;
@ -20,10 +21,12 @@ public class MailKitSmtpEmailSender : EmailSenderBase, IMailKitSmtpEmailSender
protected ISmtpEmailSenderConfiguration SmtpConfiguration { get; }
public MailKitSmtpEmailSender(ISmtpEmailSenderConfiguration smtpConfiguration,
public MailKitSmtpEmailSender(
ICurrentTenant currentTenant,
ISmtpEmailSenderConfiguration smtpConfiguration,
IBackgroundJobManager backgroundJobManager,
IOptions<AbpMailKitOptions> abpMailKitConfiguration)
: base(smtpConfiguration, backgroundJobManager)
: base(currentTenant, smtpConfiguration, backgroundJobManager)
{
AbpMailKitOptions = abpMailKitConfiguration.Value;
SmtpConfiguration = smtpConfiguration;

4
framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using NSubstitute;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Emailing.Smtp;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Testing;
using Xunit;
@ -35,6 +36,7 @@ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest<AbpMailKitTestModu
private static MailKitSmtpEmailSender CreateMailKitEmailSender()
{
var currentTenant = Substitute.For<ICurrentTenant>();
var mailConfig = Substitute.For<ISmtpEmailSenderConfiguration>();
var bgJob = Substitute.For<IBackgroundJobManager>();
@ -44,7 +46,7 @@ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest<AbpMailKitTestModu
mailConfig.GetPortAsync().Returns(Task.FromResult(587));
mailConfig.GetEnableSslAsync().Returns(Task.FromResult(false));
var mailSender = new MailKitSmtpEmailSender(mailConfig, bgJob, null);
var mailSender = new MailKitSmtpEmailSender(currentTenant, mailConfig, bgJob, null);
return mailSender;
}
}

Loading…
Cancel
Save